TestFlightで内部テスターへiOSアプリを配信してみた

2022.05.19

こんにちは、CX事業本部IoT事業部の高橋雄大です。

App StoreへiOSアプリを公開する前に、TestFlightを利用して内部テスター(開発メンバーなど)へアプリを配信して動作を確認してみたいと思います。

なお、内部テストはApp Store Connectへのユーザー登録や、100人までの人数制限などがありますが、アプリの審査は不要です。開発途中のテストやUI/UXの内部レビューに向いています。

本記事のゴール

TestFlightで内部テスターへiOSアプリを配信します。

TestFlight

環境情報

項目 内容
OS macOS Monterey 12.3 (21E230)
Xcode 13.3 (13E113)

App Store Connectにアプリを登録

既にApp Store Connectへアプリを登録している場合はこの手順をスキップできます。

前提としてApple Developers Programへの登録が必要です。

App Store Connectで新規Appを作成します。

App Store Connect 新規App

バンドルIDを作成していない場合は作成します。

App Store Connect バンドルID

SKUは重複しない文字列であればなんでもOKです。例えばDomainAppNameのようにしておきます。Descriptionにはアプリ名などを入れておくと分かりやすいです。

App Store Connectにユーザーを登録

既にApp Store Connectへユーザーを登録している場合はこの手順をスキップできます。

App Store Connectのユーザとアクセスで新規ユーザーを招待します。

App Store Connect新規ユーザーを招待

TestFlightにテスターを登録

App Store Connectで作成したアプリのTestFlightの画面で新規内部テストグループを作成します。

TestFlightの画面で新規内部テストグループを作成

内部テストグループにテスターを登録します。App Store Connectに招待して承認されたユーザーが表示されます。

TestFlight内部テストグループにテスターを追加

App Store Connectにアプリをアップロード

既にApp Store Connectへアプリをアップロードしている場合はこの手順をスキップできます。

Xcodeでアプリの設定を確認します。Bundle IdentifierにはApp Store Connectで作成したバンドルIDを設定します。Siginingについては、基本的にAutomatically manage siginingで良いのですが、共有アカウントなどで署名権限がない場合は、Provisioning Profileを発行して設定する必要があります。

Xcodeプロジェクト設定

Product->Archiveでアーカイブを実行します。

Xcodeアーカイブ

完了したら次のような画面が表示されるので、Distribute AppからアプリをApp Store Connectへアップロードします。

Xcode Archives

コマンドラインツールなどでIPAファイルを作成している場合は、Transporterで直接アップロードすることもできます。

Transporter

アップロードが完了すると、App Store Connectで作成したアプリの管理画面でビルドの処理状況を確認できます。(管理画面へ反映されるまでに数分程度のラグがあります。)

TestFlight処理中

内部テスターにアプリを配信

処理が完了すると輸出コンプライアンス情報の管理ボタンが表示されます。

TestFlight輸出コンプライアンス管理

輸出コンプライアンスの内容を確認して内部テストを開始します。

TestFlight内部テストを開始

実機端末でアプリをインストール

iPhoneなどの実機端末でApp StoreからTestFlightのアプリをインストールします。

内部テストが開始されるとメールが届くので、メール内のリンクからTestFlightを起動して、配信されたアプリをインストールします。メールをPCなどで確認した場合、リンクを開くとTestFlightのコードが表示されるので、表示されたコードを実機端末のTestFlightに入力してもOKです。

TestFlightメール iPhone TestFlight

まとめ

TestFlightを利用してテスターにiOSアプリを配信することができました。実際にアジャイルで開発を進めているプロジェクトでは、機能を実装するたびにTestFlightで気軽に内部テストを実施していたりします。

参考資料