開発中のiOSアプリをiOSエンジニア以外にテストしてもらう際に、TestFlightやDeploygate, firebase app distributionなどの配布ツールを使って確認してもらうにあたって、iOSエンジニアが確認しておくことの備忘録
TestFlight
内部テスター
- 内部テスターは100人まで
- チームでAccount Holder、Admin、App Manager、Developer、Marketingのいずれかの役割を担うメンバーを最大100人まで追加
- 追加するメールアドレスはAppleIDである必要がある
- テスターに配布する前にApple審査はなし
- アップロード、Appleサーバーでのビルド時間に30分〜1時間程度の時間がかかる
- 100デバイス制限あり
外部テスター
- 追加するメールアドレスはAppleIDである必要はなし
- Eメールアドレスを使用するか、任意のユーザーに対してAppのテストに参加する機会を開くパブリックリンクを有効にして共有
- 1万人までテスターを登録してアプリを配布できる
- 100デバイス制限も関係ない
- テスターに配布する前にApple審査が発生し、(1日程度)ビルドが承認され次第、テスト開始できる
Deploygate(or firebase app distribution
- 追加するメールアドレスはAppleIDである必要はなし
- Eメールアドレスorパブリックリンク,QRコードで共有
- テスターに配布する前にApple審査なし
- メール招待後、DeveceUDIDを登録し証明書を更新、更新後の次の配布バージョンから確認可能
- 初回の追加時は次回配布まで待つ必要があるので時差あり、証明書の管理者に更新をおねがいする必要あり
- 100デバイス制限あり
比較
開発物の確認開始までの時間
Deploygate > TestFlight内部テスター > TestFlight外部テスター
参加できる人数
TestFlight外部テスター > Deploygate == TestFlight内部テスター
参加への手軽さ
TestFlight外部テスター > Deploygate > TestFlight内部テスター
よくある確認フロー
開発中 Deploygate
↓
ある程度バグがなくなって申請前に確認 TestFlight内部テスター
↓
リリース前に確認 TestFlight外部テスター
開発途中の物を確認、テストしたい場合はDeploygateを使ってテストするのがよい。
人数制限はあるので、アプリ開発者、サーバー開発者、テスターでの確認用に使うとよい。
アプリ側でバグがあった時に修正して更新、確認してもらうなど、更新回数が多い段階で見てもらうのに使う。
Develop, Staging環境など複数環境を揃えやすいのもメリット。
大規模開発において、関わる人が多い場合はTestFlight外部テスターを使って多くの人にテストしてもらうのがよい。
テスト開始できるまでに審査が必要なので余裕を持ってテストスケジュールを組む必要がある。
テスターの参加人数の多い場合は、多くの人の時間を使ってしまうので、Deploygateである程度バグを潰した状態で見てもらうようにする。
また、アプリに詳しくない人にも確認してもらう場合は、
- DeploygateはDevice UDIDの登録必要
- TestFlightは内部テスターはAppleIDが必要
などの、テスト参加者に理解してもらえない用語や制約が多いため、どの段階からどのツールで見てもらうかはよく検討する必要がある。
どの段階からどのツールで見てもらうか検討例
- リリースの品質決定権のある人
- デザイナー
- テスターが足りない時にモンキーテスト的にデバッグを手伝ってくれる社内の人
このあたりの役割の人はある程度早く見てもらう必要があるが、かといって、あまり早い段階で見てもらっても混乱が起きたり、有意義でなテスト時間になりにくいことがある。
よくある対応として
- Deploygateに参加してもらいつつ、見て欲しいタイミングで声かけをして更新してもらう
- 開発用とは別に開発後半用のDeploygateビルドを別途作成する
- TestFlight内部テスターとして参加してもらい、TestFlightの更新をリリース前でなくある程度余裕を持ってやる
などがある。