TestFlight でリリースごとにアプリを配布していたらそれに助けられた
TestFlight という、アプリのベータ版などを配布する Apple 純正のサービスがある。
これのいいところは「リリースするアプリと同じアプリをテストできる」というところ。
実際にユーザが使うアプリと同じもので動作確認ができるし、同じアプリファイルで Apple は審査を行うのでバグがあったら Self Reject もしやすい。
なので私はいつも
という流れでリリースをするようにしている。
(この流れは fastlane で自動化している fastlane-example/Fastfile, fastlane deliver を使ってコマンド1発で Waiting For Review までもっていく)
助けられた
先日アプリがクラッシュっするバグを出してしまって、そのバグの原因はアプリの過去バージョンに起因するものだった。
クラッシュする原因は以下の2つ。
- ver 3.0.0 が初回インストールだったユーザ
- ver 1.X.X -> ver 3.X.X に飛び越えてアップデートしたユーザ
今回 TestFlight に助けられたのは 2 のパターンの原因特定 / デバッグのところ。
TestFlight は 90 日過去バージョンをインストールできる
最初はクラッシュする原因が全然わからなかったんだけど、 TestFlight を見てたら過去バージョンがズラ〜っと並んでいて、なんとなく ver 1.X.X のをインストールした後に ver 3.0.1 をインストールしたらクラッシュして原因特定できた。
原因特定できた後も修正確認のために ver 1.X.X をインストールして、 ver 3.1.0 をその後インストールして動作が問題ないか、というテストができた。
もし TestFlight がなかったらデバッグが大変になってて、 ver 1.X.X をインストールするためには Xcode 8.X を持ってきて... というところから始めないといけなくなる。 AppStore からも基本的に過去 ver は DL できないし。
TestFlight で配布していたおかげで過去バージョンからのマイグレーションテストも手軽にできて助かった。