TestFlight を使用して Xamarin.iOS アプリを配布する
Apple が所有するようになった TestFlight は、Xamarin.iOS アプリのベータ テストを行う主要な方法です。 この記事では、アプリのアップロードから iTunes Connect での作業まで、TestFlight プロセスのすべての手順について説明します。
ベータ テストはソフトウェア開発サイクルの不可欠な部分であり、このプロセスを効率化する多くのクロスプラットフォーム アプリケーションが提供されています (Visual Studio App Center、Applause、そしてもちろん Google Play の Android アプリ用 Native App Beta Testing など)。 このドキュメントでは、Apple の TestFlight について説明します。
TestFlight は Apple の iOS アプリ用ベータ テスト サービスであり、iTunes Connect を介してのみアクセスできます。 現在は、iOS 8.0 以降のアプリに利用できます。 TestFlight は内部ユーザーと外部ユーザー両方のベータ テストに対応しており、外部ユーザー向けのベータ アプリ レビューにより、App Store に発行するときの最終レビューのプロセスが簡単になります。
以前は、テスト担当者に配布するには、Visual Studio for Mac でバイナリを生成し、TestFlightApp Web サイトにアップロードする必要がありました。 新しいプロセスは多くの点が改善されており、高品質で十分にテストされたアプリを App Store に公開できます。 次に例を示します。
- 外部テストに必要なベータ アプリ レビューは、最終 App Store レビュー成功の可能性を高くします。どちらも、Apple のガイドラインに準拠している必要があります。
- アップロードする前に、アプリを iTunes Connect に登録する必要があります。 これにより、プロビジョニング プロファイル、名前、証明書に不一致が存在しないことが保証されます。
- TestFlight アプリは実際の iOS アプリになったので、より高速に動作します。
- ベータ テスト完了後にアプリをレビューに移動するプロセスは、迅速かつ効率的であり、1 つのボタンをクリックするだけです。
要件
TestFlight でテストできるのは iOS 8.0 以降のアプリだけです。
すべてのテスト担当者は、少なくとも iOS 8 デバイスでアプリをテストする必要があります。 ただし、ベスト プラクティスでは iOS のすべてのバージョンでアプリをテストする必要があるようになっています。
プロビジョニング
TestFlight でビルドをテストするには、新しいベータ資格で "App Store 配布プロファイル" を作成する必要があります。 この資格により TestFlight でのベータ テストが可能になり、すべての新しい App Store 配布プロファイルにこの資格が自動的に組み込まれます。 新しいプロファイルの生成手順については、「Creating a Distribution Profile」(配布プロファイルの作成) ガイドをご覧ください。
Xcode でビルドを検証するときに、配布プロファイルにベータ資格が含まれることを確認できます (下図参照)。
- アプリをアーカイブした後に Mac ビルド ホストで XCode を開きます
- [ウィンドウ] > [オーガナイザー] メニューを選択します
- 左側にある [アーカイブ] を選択します
- 検証するアーカイブを選択し、[検証] ボタンをクリックします
TestFlight のワークフロー
次のワークフローでは、アプリのベータ テスト用に TestFlight を使い始めるために必要な手順について説明します。
- 新しいアプリの場合は、iTunes Connect レコードを作成します。
- アプリケーションを iTunes Connect にアーカイブして発行します。
- ベータ テストを管理します。
- メタデータを追加します。
- 内部ユーザーを追加します。
- 最大 100 ユーザー。各ユーザーは最大 30 台のデバイスでテストできます。
- 外部ユーザーを追加します。
- 最大 10,000 ユーザー。
- ベータ テスト レビューが必要です。そのためには、Apple のガイドラインへの準拠が必要です。
- ユーザーからのフィードバックを受け取り、それに対応して、ステップ 2 に戻ります。
iTunes Connect レコードを作成する
Apple 開発者の資格情報を使って、iTunes Connect ポータルにログインします。
[My Apps]\(マイ アプリ\) を選びます。
[My Apps]\(マイ アプリ\) 画面の左上隅にある +[] ボタンをクリックして、新しいアプリを追加します。 Mac および iOS の開発者アカウントがある場合は、ここで新しいアプリの種類を選ぶように求められます。
[New iOS App]\(新しい iOS アプリ\) 送信ウィンドウには、アプリの Info.plist とまったく同じ情報が表示される必要があります。
新しい iTunes Connect レコードの作成について詳しくは、「Creating an iTunes Connect Record」(iTunes Connect レコードの作成) ガイドをご覧ください。
新しい iOS アプリ送信フォームの設定
このフォームはアプリの Info.plist ファイルとまったく同じ情報にする必要があります (下図参照)。
- [Name]\(名前\) — アプリ バンドルの設定に使われるわかりやすい名前。
Info.plist
のアプリケーション名エントリと完全に一致する必要があります。 - [Primary Language]\(第一言語\) — アプリ内で使われるベース言語。 通常はユーザーが使っている言語です。
- [Bundle ID]\(バンドル ID\) — 開発者アカウントに作成されているすべてのアプリ ID が一覧表示されるドロップダウン メニュー。
- [Bundle ID Suffix]\(バンドル ID サフィックス\) — ワイルド カード バンドル ID (上の例のように * で終わる ID) を選んだ場合、バンドル ID サフィックスの入力を求めるボックスが追加表示されます。 上の例では、バンドル ID が
mobi.chkn.*
、サフィックスが PageView です。 これらを合わせて、Info.plist
のバンドル ID が作成されます。
- [Bundle ID Suffix]\(バンドル ID サフィックス\) — ワイルド カード バンドル ID (上の例のように * で終わる ID) を選んだ場合、バンドル ID サフィックスの入力を求めるボックスが追加表示されます。 上の例では、バンドル ID が
- [Version]\(バージョン\) — アップロードされるアプリのバージョン番号。 これは開発者が選びます。
- [SKU]\(SKU\) — SKU は、ユーザーには示されないアプリの一意 ID です。 製品 ID と同じようなものと考えることができます。 上の例では、日付とその日付のバージョン番号にしてあります。
アプリをアップロードする
iTunes Connect レコードが作成されたら、新しいビルドをアップロードできます。 ビルドには新しいベータ資格が必要なことに注意してください。
最初に、IDE で最終的な配布可能アプリをビルドした後、アプリケーション ローダーまたは Xcode のアーカイブ機能を使って Apple にアプリを送信します。
アーカイブを作成する
Visual Studio for Mac でバイナリをビルドするには、"アーカイブ" 機能を使う必要があります。 プロジェクトを右クリックし、[発行のためのアーカイブ] を選びます (下図参照)。
詳しくは、「Building the Distributable」(配布可能アプリのビルド) ガイドをご覧ください。
アプリに署名して配布する
アーカイブを作成するとアーカイブ ビューが自動的に開き、アーカイブされているすべてのプロジェクトがソリューション別にグループ化されて表示されます。 アプリに署名して配布の準備をするには、[署名と配布...] を選びます (下図参照)。
これにより、発行ウィザードが開きます。 [App Store] 配布チャネルを選んでパッケージを作成し、アプリケーション ローダーを開きます。 [プロビジョニング プロファイル] 画面で、署名 ID とプロビジョニング プロファイルを選ぶか、別の ID で再署名します。 パッケージの詳細を確認し、[発行] をクリックして .ipa
を保存します。
手順について詳しくは、「Submitting your App to Apple」(Apple へのアプリの送信) セクションをご覧ください。
ビルドを送信する
iTunes Connect にビルドをアップロードするためのアプリケーション ローダー プログラムが開きます。 [Deliver Your App]\(アプリの配信\) オプションを選び、前に作成した .ipa
ファイルをアップロードします。 アプリケーション ローダーがビルドを検証して iTunes Connect にアップロードします。
手順について詳しくは、「Submitting your App to Apple」(Apple へのアプリの送信) セクションをご覧ください。
以上の手順など、App Store への送信プロセスについて詳しくは、「Publishing to the App Store」(App Store への発行) ガイドをご覧ください。
iTunes Connect の [My Apps]\(マイ アプリ\) セクションに戻ると、アプリケーションが正常にアップロードされているはずです。 以上で、ベータ テストを行う準備ができました。
ベータ テストを管理する
メタデータの追加
TestFlight を使い始めるには、アプリの [Prerelease]\(プレリリース\) タブに移動します。 3 つのタブ [Builds]\(ビルド\)、[Internal Testers]\(内部テスト担当者\)、[External Testers]\(外部テスト担当者\) に一覧が表示されます (下図参照)。
アプリにメタデータを追加するには、ビルド番号をクリックし、TestFlight をクリックします。
[Test Information]\(テスト情報\) では、アプリに関する重要な情報をテスト担当者に提供できます。以下はその例です。
- テストの内容。
- アプリの説明。
- マーケティング URL — 追加しているアプリに関する情報を提供します。
- プライバシー ポリシー URL — 会社のプライバシー ポリシーに関する情報を提供する URL。
- フィードバック メール アドレス。
このメタデータは、内部テスト担当者に対しては必須ではありませんが、外部テスト担当者に対しては必須であることに注意してください。
ベータ テストを有効にする
アプリのテストを開始する準備ができたら、バージョンの [TestFlight Beta Testing]\(TestFlight ベータ テスト\) スイッチをオンにします。
各ビルドは、[TestFlight Beta Testing]\(TestFlight ベータ テスト\) をオンにしてから 60 日間アクティブになります。 各ビルドの残り日数は、[Test Information]\(テスト情報\) ページで確認できます。
いつでもテストを無効にできます。
内部テスト担当者
内部テスト担当者は、iTunes Connect で次のロールのいずれかを割り当てられている、開発チームのメンバーです。
- 管理者 – 管理者は、iTunes Connect での新しいユーザーの追加と管理を担当します。
- 法務担当者 – チーム エージェントは、法務担当者ロールを割り当てられる唯一の管理者ユーザーです。 法的契約書に署名することができます。
- 技術担当者 – 技術ユーザーは、アプリに関するほとんどのプロパティを変更できます。 たとえば、アプリ情報の編集、バイナリのアップロード、レビュー用のアプリの送信を行うことができます。
各ビルドは、最大 100 人のメンバーで共有できます。各ユーザーは最大 30 台のデバイスでテストできます。
テスト担当者を追加するには、iTunes Connect メイン画面の [Users and Roles]\(ユーザーとロール\) を使います。
既存の iTunes Connect ユーザーが一覧に表示されます。 ユーザーを選ぶには、名前をクリックし、[Internal Tester]\(内部テスト担当者\) スイッチをオンにして、[Save]\(保存\) をクリックします。
一覧にないユーザーを追加するには、[Users]\(ユーザー\) の横の +[] を選び、名、姓、メール アドレスを指定してアカウントを作成します。 アカウントをアクティブ化するには、ユーザーがメールを確認する必要があります。
[マイ アプリ] > [プレリリース] > [内部テスト担当者] に戻ると、TestFlight 内部ベータ テストに追加されたユーザーが表示されます。
名前を選んで [Invite]\(招待\) ボタンをクリックすることで、これらのテスト担当者を招待できます。 テスト担当者は、アプリのテストに招待するメールを受け取ります。
[Internal Testers]\(内部テスト担当者\) ページの状態列で、招待の状態を確認できます。
外部テスト担当者
アプリのベータ テストに外部テスト担当者を招待する前に、ベータ アプリ レビューを行う必要があり、したがって、App Store レビュー ガイドラインに準拠する必要があります。
レビュー用にアプリを送信するには、ビルドの隣にある [Submit For Beta App Review]\(ベータ アプリ レビュー用に送信\) テキストをクリックします (下図参照)。
アプリがレビューに合格するには、TestFlight のベータ情報ページで必要なすべてのメタデータを入力する必要があります。
招待の準備を開始し、[外部テスト担当者] タブでメール アドレス、名、姓を入力して、最大 10,000 人の外部テスト担当者を追加できます (下図参照)。 入力するメール アドレスは、Apple ID でなくてもかまいません。これは、招待を受け取るためだけのメール アドレスです。
外部テスト担当者の数が多い場合は、[Import File]\(ファイルのインポート\) リンクを使い、次のような形式の行を含む CSV
ファイルをインポートできます。
first name, last name, email address
また、外部テスト担当者を異なるグループに追加して、テスト担当者を整理することもできます。
外部テスト担当者の詳細を入力した後、[Add]\(追加\) をクリックして、招待に対するユーザーの同意があることを確認します。
ベータ アプリ レビューが正常に行われた後でのみ、外部テスト担当者に招待を送信できます。 この時点で、ビルド ページの [External]\(外部\) の下のテキストが、[Send Invites]\(招待の送信\) に変わります。 これをクリックして、既に追加しているすべてのテスト担当者に招待を送信します。
アプリが却下された場合は、[Resolution Center]\(解決センター\) で示されている問題を修正し、更新されたバイナリ全体をレビューのために再送信する必要があります。
ベータ テスト担当者として
テスト担当者を招待すると、テスト担当者は以下のスクリーンショットのようなメールを受け取ります。
[Open in TestFlight]\(TestFlight で開く\) ボタンをクリックすると、アプリが TestFlight アプリケーションで開きます。または、まだダウンロードされていない場合は、App Store に移動してダウンロードできます。
アプリが TestFlight で開くと、テスト内容の詳細が表示され、テスト担当者は自分の iOS 8.0 (またはそれ以降) デバイスにアプリケーションをインストールするように求められます。
デバイスのホーム画面では、テスト ビルドはアプリケーション名の前のオレンジ色のドットで示されます。
テスト担当者は TestFlight アプリでフィードバックを送信でき、開発者はメタデータで指定されているメール アドレスでこの情報を受け取ることができます。
ベータ テストの完了
ベータ テストが完了すると、Apple による App Store レビュー用にアプリを送信できます。 このプロセスは、iTunes Connect で [Submit for Review]\(レビュー用に送信\) ボタンをクリックするだけの簡単なものです (下図参照)。
まとめ
この記事では、iTunes Connect で Apple の TestFlight ベータ テストを使う方法を説明しました。 iTunes Connect に新しいビルドをアップロードする方法と、アプリを使うように内部および外部のベータ テスト担当者を招待する方法を説明しました。