Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 12 Ad

More Related Content

Slideshows for you (20)

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

Advertisement

Recently uploaded (20)

Advertisement

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

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

×