TestFlightがAppleに買収されて iTunes Connectから使えるようになりました。 さっそく使ってみましたが、いままでのTestFlightにくらべて予想以上に楽になっています。 すべてのDeveloperがいますぐ使い始めるべきレベルなので、ぜひつかってみることをおすすめします。
いままでのTestFlightとの違い
以前からTestFlightでのアプリの配布はできましたが、買収される前とされたあとでかわった内容を簡単にまとめるとこんな感じです。
- テスターがテストに参加するのが楽。
- 開発者がテスターを登録するのが楽。
- App Storeへの審査用Submitと同時に行うことができるのが楽。
今まではTestFlightにテスターを登録するのに、それぞれのiPhoneのUDIDを集めて、それを登録する必要があり、開発者、テスターともにかなりめんどくさかったんですよね。 「え、UDIDってなにー?」「どこでわかるの?」「いや、これはUDIDじゃなくてシリアル番号ですよ」など、Developerではない方に参加していただくためにいろいろと情報を提供する必要もありました。 今回はUDIDなども必要なく、Apple ID(メールアドレス)を教えてもらうだけでいいので、テスターも開発者もずいぶん楽になりました。
また、リリース前のアプリをサードパーティーのサーバーに置くことがセキュリティ面からNGな場合もありましたが、Appleのサーバーであれば、その点も安心です。
今回 App Storeに統合された TestFlightはとても使いやすくなり、かつセキュリティ的な心配もなくなりました。 今後は可能な限りこの機能で配布していきたいと思っています。
どんなテストができるのか
基本的には、App Storeからリリースするモジュールをそのままテストすることができます。
App Storeに統合されたTestFlightでは、インターナルテストとエクスターナルテストをすることができます。 インターナルテストは、関係者によるテスト、エクスターナルテストは、ある程度バグがなくなった状態で行う、ベータテストですね。
インターナルテストでテストをする人(テスターとよびます)は、インターナルテスター、エクスターナルテストではエクスターナルテスターとよばれます。
インターナルテスターは、iTunes ConnectにAdminかTechnicalメンバーとして登録している人に限られ、25人まで登録できます。 一人当たり10台のデバイスまでテストできます。
エクスターナルテスターは、開発チームには全く関係のない一般の方で大丈夫。いわゆるベータテスターですね。 こちらは1000人まで招待できます。 ただし、エクスターナルテストをするためには、「App Store Review Guidelines」にそっているかどうかAppleの審査が必要です。 (インターナルテストの場合には必要ありません。)
Developerは、同時に10個までのアプリをテストすることが可能です。
ただし、残念なことにTestFlightアプリはiOS8.0以上しか対応していないため、この方法でアプリを配布するためには、テスト用のデバイスのOSは8.0以上である必要があります。
テストの始め方(インターナルテスト)
では、さっそく、テストを始めてみましょう。 まずは、App Storeの審査用にSubmitするときと同じ手順で、Xcodeからモジュールをアップロードしてください。
モジュールをアップロードすると、そのアプリの「prerelease」タブにそのモジュールのビルドが表示されます。 ここで、右上にある、「TestFlight Beta Testing」をオンにします。
それから、「Internal Tester」タブにいって、インターナルテスターを登録して(Apple IDを登録するだけでOKです)、チェックボックスをオンにしてください。 インターナルテストをする場合にはこれだけでOK。
インターナルテスターとして登録された人には、こんなメールが届きます。
iPhoneでこのメールのリンクをクリックすると、TestFlightが起動します。
TestFlightをインストールしていない場合には、TestFlightのダウンロード画面になります。
TestFlightを起動すると、テスト用のアプリをダウンロードすることができます。
アプリをインストールすると、普通のアプリと同じようにすぐ使えるようになります。ホーム画面では、アプリの名前の前に赤いドットがついて、テスト用のアプリということがわかるようになっています。
テストの始め方(エクスターナルテスト)
エクスターナルテストの場合には、アプリをテスト用の審査にSubmitしなくてはいけません。
さきほどの画面に戻り、モジュールの右側の「Submit for beta review」をクリックするとテスト用審査のSubmit画面になります。
この画面で、ベータテストの目的やアプリの説明などを入力します。
次の画面で、暗号化輸出規制のチェックをして、「Submit」をおすと、Submit完了です。
エクスターナルテスターは、インターナルテスターと同様に、Apple ID(メールアドレス)を入力するだけで登録できます。
気になるのが、テスト用の審査がどのくらい厳しいのか、期間はどのくらいかかるのか(通常の審査より短いのか、それとも同じくらいなのか)ですが、まだそれほど情報がでていないため、そのあたりは不明です。 (テスト用の審査を通過したので、こちらに追記しました。:新しいTestFlightでExternal Test)
TestFlightによるテストによる利点
TestFlightによるテストを行いながらApp Storeの通常審査のSubmitも同時にすすめることができます。 (テストでバグがでた場合には、通常の審査もやりなおしにする必要がありますが……。) 審査がとおるまで、同じビルドで最終テストをすることもできるので、効率的ですね。 App Storeのの審査が完了して、モジュールをリリースすると、FlightTestによるテストも自動的に終了するそうです。
ベータテストの一番の利点は、ユーザーの環境でのアップデート検証を簡単に行うことができることだと思います。 ユーザーが端末に保存した古いデータをひきついで、新しいアプリを動作させるアップデート検証は、どのアプリでもとても重要です。 ただ、ユーザーが保存したデータというのは、ユーザーの環境や端末や使い方によって、開発者にとって想定外のデータとなってしまうこともあるんですよね。 このアップデート検証が十分に行えずに、アプリをリリースした後に、「クラッシュする!」とか「起動しない!」などのバグをだしてしまうことはわりとあると思います。
一般配布のベータテストを行うと、実際に使っていただいているユーザーの方にアップデート検証をしていただけるので、この様々な状況でのアップデート検証を行うことができます。 TestFlightを利用してアプリのバグを減らせるといいですね。