12
Copyright © DeNA Co.,Ltd. All Rights Reserved. CAMPFIRE iOS #2 2017/06/12(Mon) 平田敏之 @DeNA SWET マスティフ: (for Xcode Beta) バージョンアップ対応を軽減するためのサービス

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

Embed Size (px)

Citation preview

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での利用を検討したがベータ版がない