SlideShare a Scribd company logo
Copyright © DeNA Co.,Ltd. All Rights Reserved.
CAMPFIRE iOS #2
2017/06/12(Mon)
平田敏之@DeNA SWET
マスティフ: (for Xcode Beta)
バージョンアップ対応を軽減するためのサービス
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 平田 敏之@DeNA
⁃ SWET (Software Engineer in Test)
• 事業サポートチーム / テスト基盤チーム
• ミッション
⁃ DeNAサービス全般の品質向上
⁃ DeNAエンジニアの開発生産性向上
⁃ 私がやっていること(の一部)
• クライアントアプリ周りのテスト戦略、自動テストの開発
• CI/CD環境整備
• テスト基盤環境の開発
• iOS Test Nightの主催
Copyright © DeNA Co.,Ltd. All Rights Reserved.
はじめに
 CAMPFIRE iOS #2のテーマ
⁃ 「WWDC / 新iOSバージョン対応」
• WWDC2017
⁃ Xcode 9 / iOS 11
皆さんは発表に対してどのような感想を持ちましたか?
新機能に対してワクワクする・試してみたい
• ARKit!!
• XCode9!!
• テスト周りの改良!!
ワクワクすると同時に不安がありませんか?
• 新機能に対して「どのようにテストしようか」
• 既存アプリに対して影響ある新機能や改修がないか
Copyright © DeNA Co.,Ltd. All Rights Reserved.
WWDC2017の影響
 すでにリリースされているもの
⁃ 自動アップデート用の段階的リリース
⁃ アプリのサブタイトル(iOS11-)
⁃ プロモーション用テキスト(iOS11-)
 現在はβでそのうちリリースされるもの
⁃ Xcode 9
• What’s New in StoreKit / etc
⁃ iOS 11
• Introducing the New App Store / etc
・すでにリリース済みのものは影響がないかすぐにチェックしないといけない
・リリース前のものはβじゃなくなるまでにチェックをしないといけない
Copyright © DeNA Co.,Ltd. All Rights Reserved.
「マスティフ」:バージョンアップ対応軽減サービス
 マスティフのお仕事 / SWET特製サンプルアプリを利用
⁃ 対象ライブラリがバージョンアップしたら動作確認をする
• バージョンアップに対応が必要かがすぐに分かる
• ビルド時間、ファイルサイズなどの変化が分かる
⁃ 既存ライブラリが動くことを定期的に動作確認する
• 使えなくなったことを早めに知りたい
⁃ 1日1回動作確認を実行
 バージョンアップ検知の対象(for iOS)
⁃ Gemfile
⁃ CocoaPods
⁃ Carthage
⁃ Xcode(βも含む)
Copyright © DeNA Co.,Ltd. All Rights Reserved.
システム構成(非常に簡単に)
全体管理
バージョンチェック
動作確認
結果管理
digdag
Jenkins
slack
モバイルアプリ
(iOS / Android)
このバージョンで
動作確認してください
あなた自身(Xcodeとか)を
バージョンアップしてください
・ファイルサイズ
・ビルド時間
などを管理し公開
Copyright © DeNA Co.,Ltd. All Rights Reserved.
マスティフの日常
 SWETの環境に生息中
⁃ 1日1回、現行バージョンの動作確認をする
• 現在の最新バージョンで動作確認
⁃ 監視対象がリリースされたら動作確認をする
• ビルドマシンに関係するもの(の例)
⁃ Xcode
• Xcode8.3.3がリリース → ビルドマシンに自動インストール
• 以降、Xcode8.3.3が動作確認で利用される
• アプリ自身が利用するもの(の例)
⁃ fastlane / gem
• 週1回以上のリリースがある(基本最新を使うのが良い)
⁃ Firebase / Pods
• ★4系になり名前が変更になり対応が必要になりました★
Copyright © DeNA Co.,Ltd. All Rights Reserved.
そんなマスティフの「WWDC2017」 初日の出来事
 iTunes Connectに新機能が追加
⁃ 定期実行でdeliverが動かないことが自動で判明
⁃ fastlaneの新バージョンがリリース(早い..)
⁃ 新バージョンでdeliverが動くことを自動で確認
私が出社する前に上記は全て終わっていました
Copyright © DeNA Co.,Ltd. All Rights Reserved.
マスティフとXcodeベータの生活(1/2)
 おさらい / ベータ版の流れ
1. ベータ版はn回リリースされる
• (Info.plist内の)バージョン番号は変わらない
• BuildNumberが変わる
1. ある日、
• ベータ最終版のGM(Gold Master)版がリリースされる
1. 正式版が出る
• (基本)GM版と一緒
• BuildNumberが異なるときがある
Copyright © DeNA Co.,Ltd. All Rights Reserved.
マスティフとXcodeベータの生活(2/2)
 マスティフにおけるベータ版のフロー(通常フローとは別で用意)
1. Xcodeベータの更新をBuildNumberの差異で検知
2. ビルドマシンにインストール
• 古いのは残さない
3. サンプルアプリを元に動作確認
• サンプルアプリは「既存」「新規対応」の2種類で確認
• 既存
• 新規機能を導入していない状態
• 新規対応
• 今回新たに追加・改良されたAPI(のうち一部)を導入
Copyright © DeNA Co.,Ltd. All Rights Reserved.
重点調査対象:テスト周り/CI周りの変化
 (我々のアプリでは)特にテスト周り/CI周りの変化に注力しています
⁃ ベータ版での調査は上記がメインになります
 アスティフで使っているアプリは以下の機能を有しています
⁃ UIテスト
• XCTest
⁃ ※新規・改修があった場合に対応する※
• EarlGrey
• Appium
⁃ CI周り
• ビルド → テスト → iTunesConnectへのデータ更新
⁃ fastlaneを元にチェック
※マスティフは他アプリで実行することも可能※
Copyright © DeNA Co.,Ltd. All Rights Reserved.
さいごに
 WWDC2017おつかれさまでした
⁃ GM版が出るまでが勝負なので楽しみましょう
⁃ バージョンアップ対応における不安とコストは極力下げて新機能を
楽しみましょう
• もっともっと下げられるはず
 In the future work
⁃ 新iOSへのバージョンアップも自動化出来ないかを検討中
• iOSのベータが出る → 端末を自動でアップデート → 動作確認
• AWS Device Farmでの利用を検討したがベータ版がない

More Related Content

What's hot

What's hot (20)

スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていることスマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
 
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介
 
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進めるiOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
 
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
 
DroidKaigi_devicefarm
DroidKaigi_devicefarmDroidKaigi_devicefarm
DroidKaigi_devicefarm
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
 
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるXcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
 
fastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみたfastlane snapshotの並列実行についてまとめてみた
fastlane snapshotの並列実行についてまとめてみた
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercari
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
WWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension についてWWDC2017 レポート & Quick Look Preview Extension について
WWDC2017 レポート & Quick Look Preview Extension について
 
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
 
OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話OpenSTFを ECSに乗せてみた話
OpenSTFを ECSに乗せてみた話
 
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
CEDEC2015_スマホゲーム開発を支えろ!〜汗と涙のQAエンジニアリング〜
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 

Similar to マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス

Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
Yushi_Takagi
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 

Similar to マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス (20)

Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
 
Open STF Plugin 作ってみた
Open STF Plugin 作ってみたOpen STF Plugin 作ってみた
Open STF Plugin 作ってみた
 
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo 【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
20221017_QiitaNight_ver2.pdf
20221017_QiitaNight_ver2.pdf20221017_QiitaNight_ver2.pdf
20221017_QiitaNight_ver2.pdf
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
 
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechconDeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
 
5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
 
EnOcean Development Performance - STM3xy and .NET Gadgeteer
EnOcean Development Performance - STM3xy and .NET GadgeteerEnOcean Development Performance - STM3xy and .NET Gadgeteer
EnOcean Development Performance - STM3xy and .NET Gadgeteer
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
Introducing Zend Studio 10 Japanese Edition
Introducing Zend Studio 10 Japanese EditionIntroducing Zend Studio 10 Japanese Edition
Introducing Zend Studio 10 Japanese Edition
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 

More from Toshiyuki Hirata (7)

iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
 
iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測iOSにおけるパフォーマンス計測
iOSにおけるパフォーマンス計測
 
iOSにおける自動テストの並列化
iOSにおける自動テストの並列化iOSにおける自動テストの並列化
iOSにおける自動テストの並列化
 
UIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめるUIテスト(Espresso)の高速化をさらにすすめる
UIテスト(Espresso)の高速化をさらにすすめる
 
UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法UIテストの実行時間を短縮させる方法
UIテストの実行時間を短縮させる方法
 
我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有我が家のLINEを中心とした情報共有
我が家のLINEを中心とした情報共有
 
レビューのコストを削減するための施策
レビューのコストを削減するための施策レビューのコストを削減するための施策
レビューのコストを削減するための施策
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (11)

20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 

マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス

  • 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. CAMPFIRE iOS #2 2017/06/12(Mon) 平田敏之@DeNA SWET マスティフ: (for Xcode Beta) バージョンアップ対応を軽減するためのサービス
  • 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介  平田 敏之@DeNA ⁃ SWET (Software Engineer in Test) • 事業サポートチーム / テスト基盤チーム • ミッション ⁃ DeNAサービス全般の品質向上 ⁃ DeNAエンジニアの開発生産性向上 ⁃ 私がやっていること(の一部) • クライアントアプリ周りのテスト戦略、自動テストの開発 • CI/CD環境整備 • テスト基盤環境の開発 • iOS Test Nightの主催
  • 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. はじめに  CAMPFIRE iOS #2のテーマ ⁃ 「WWDC / 新iOSバージョン対応」 • WWDC2017 ⁃ Xcode 9 / iOS 11 皆さんは発表に対してどのような感想を持ちましたか? 新機能に対してワクワクする・試してみたい • ARKit!! • XCode9!! • テスト周りの改良!! ワクワクすると同時に不安がありませんか? • 新機能に対して「どのようにテストしようか」 • 既存アプリに対して影響ある新機能や改修がないか
  • 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. WWDC2017の影響  すでにリリースされているもの ⁃ 自動アップデート用の段階的リリース ⁃ アプリのサブタイトル(iOS11-) ⁃ プロモーション用テキスト(iOS11-)  現在はβでそのうちリリースされるもの ⁃ Xcode 9 • What’s New in StoreKit / etc ⁃ iOS 11 • Introducing the New App Store / etc ・すでにリリース済みのものは影響がないかすぐにチェックしないといけない ・リリース前のものはβじゃなくなるまでにチェックをしないといけない
  • 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. 「マスティフ」:バージョンアップ対応軽減サービス  マスティフのお仕事 / SWET特製サンプルアプリを利用 ⁃ 対象ライブラリがバージョンアップしたら動作確認をする • バージョンアップに対応が必要かがすぐに分かる • ビルド時間、ファイルサイズなどの変化が分かる ⁃ 既存ライブラリが動くことを定期的に動作確認する • 使えなくなったことを早めに知りたい ⁃ 1日1回動作確認を実行  バージョンアップ検知の対象(for iOS) ⁃ Gemfile ⁃ CocoaPods ⁃ Carthage ⁃ Xcode(βも含む)
  • 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. システム構成(非常に簡単に) 全体管理 バージョンチェック 動作確認 結果管理 digdag Jenkins slack モバイルアプリ (iOS / Android) このバージョンで 動作確認してください あなた自身(Xcodeとか)を バージョンアップしてください ・ファイルサイズ ・ビルド時間 などを管理し公開
  • 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフの日常  SWETの環境に生息中 ⁃ 1日1回、現行バージョンの動作確認をする • 現在の最新バージョンで動作確認 ⁃ 監視対象がリリースされたら動作確認をする • ビルドマシンに関係するもの(の例) ⁃ Xcode • Xcode8.3.3がリリース → ビルドマシンに自動インストール • 以降、Xcode8.3.3が動作確認で利用される • アプリ自身が利用するもの(の例) ⁃ fastlane / gem • 週1回以上のリリースがある(基本最新を使うのが良い) ⁃ Firebase / Pods • ★4系になり名前が変更になり対応が必要になりました★
  • 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. そんなマスティフの「WWDC2017」 初日の出来事  iTunes Connectに新機能が追加 ⁃ 定期実行でdeliverが動かないことが自動で判明 ⁃ fastlaneの新バージョンがリリース(早い..) ⁃ 新バージョンでdeliverが動くことを自動で確認 私が出社する前に上記は全て終わっていました
  • 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフとXcodeベータの生活(1/2)  おさらい / ベータ版の流れ 1. ベータ版はn回リリースされる • (Info.plist内の)バージョン番号は変わらない • BuildNumberが変わる 1. ある日、 • ベータ最終版のGM(Gold Master)版がリリースされる 1. 正式版が出る • (基本)GM版と一緒 • BuildNumberが異なるときがある
  • 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. マスティフとXcodeベータの生活(2/2)  マスティフにおけるベータ版のフロー(通常フローとは別で用意) 1. Xcodeベータの更新をBuildNumberの差異で検知 2. ビルドマシンにインストール • 古いのは残さない 3. サンプルアプリを元に動作確認 • サンプルアプリは「既存」「新規対応」の2種類で確認 • 既存 • 新規機能を導入していない状態 • 新規対応 • 今回新たに追加・改良されたAPI(のうち一部)を導入
  • 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. 重点調査対象:テスト周り/CI周りの変化  (我々のアプリでは)特にテスト周り/CI周りの変化に注力しています ⁃ ベータ版での調査は上記がメインになります  アスティフで使っているアプリは以下の機能を有しています ⁃ UIテスト • XCTest ⁃ ※新規・改修があった場合に対応する※ • EarlGrey • Appium ⁃ CI周り • ビルド → テスト → iTunesConnectへのデータ更新 ⁃ fastlaneを元にチェック ※マスティフは他アプリで実行することも可能※
  • 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. さいごに  WWDC2017おつかれさまでした ⁃ GM版が出るまでが勝負なので楽しみましょう ⁃ バージョンアップ対応における不安とコストは極力下げて新機能を 楽しみましょう • もっともっと下げられるはず  In the future work ⁃ 新iOSへのバージョンアップも自動化出来ないかを検討中 • iOSのベータが出る → 端末を自動でアップデート → 動作確認 • AWS Device Farmでの利用を検討したがベータ版がない