【Apple】Test Flightでテスターにアプリを配布する方法!
この記事からわかること
- Test Flightとは?
- iOSアプリをテスターに配布する方法
- ベータテスターの登録方法
- テスターの権限の種類
- 社内や社外の人にアプリを事前に配布するには?
index
[open]
\ アプリをリリースしました /
環境
- Xcode:26.0.1
- iOS:26
- Swift:6
- macOS:Tahoe 26.0.1
iOSアプリを開発者以外の人にテストしてもらうTest Flightという仕組みについてまとめていきます。
Test Flightとは?(テスター向け)
「Test Flight(テストフライト)」はiOSやwatchOSなどAppleのアプリケーションをリリースする前に非開発者(友達や家族、社内の人、お客さん)などにテスト配布するためのApple公式配布機能です。またTest Flightの一部の配布機能では通常のアプリ審査より簡易なAppleからの審査に合格する必要があるものもあります。
Test Flight機能を利用するためにはApp Store Connectへログイン(有料サブスク契約)する必要があり、また配布対象用のアプリをApp Store Connectに登録しておく必要があります。
本来開発段階のアプリをインストールするためにはXcodeからビルドする手段を取るのが基本ですが、その場合だとインストール端末のUDIDの登録とプロビジョニングプロファイルへの反映など諸々の設定をする必要があります。Apple Developer Programに登録できるデバイス(UDID)が100台までなど制限(※)もあるのでXcodeからのビルドでは複数人へのテスト配布には向いていません。
これを解消できるのがTest FlightでUDIDの登録やプロビジョニングプロファイルへの反映などは不要で、テスターに必要なのはAppleアカウントのみになります。
また配布したビルドは90日間しかインストールできないようになっています。
まとめ
- Test Flightは非開発者へのアプリ配布手段
- UDIDの登録やプロビジョニングプロファイルへの反映は不要
- テスターに必要なのはAppleアカウントのみ
- 90日間しかインストールできない
※ さらにデバイスの削除は年に1回しか行うことができないので管理も大変になってきます。
Test Flightとは?(開発者向け)
Test Flightは「配布用証明書(Distribution Certificate)」を使ってビルドを行ったものを配布できる仕組みになっています。そのためApp Storeで実際に提出するビルドに近い形式で署名されている状態になっており、証明書の有効期限が切れても本番リリース同様にアプリが起動できなくなるといったことはありません。これはリリースビルドと同じで期限切れの場合Appleサーバーがアプリを「再署名」して配布してくれるからです。
ただ証明書の有効期限が切れた場合は未インストールだったテスターの新規インストールやアップデートなどはできなくなるので新しい証明書を含んだもので再度Test Flightで配布し直す必要があるので注意してください。
内部テスターと外部テスター
Test Flightには「内部テスター」と「外部テスター」という区分があります。
内部テスター
内部テスターとはApp Store Connectでテスターとして登録されているユーザーのことを指します。後述していますがApp Store Connectへユーザーを招待した際にAccount Holder、Admin、App Manager、Developer、Marketingの権限を持っているユーザーが内部テスターになります。この際に登録するメールアドレスはテストを行う端末で使用しているApple IDのメールアドレスである必要があります。
内部テスターは最大100人までテスターとして登録することが可能になっており、内部テスターへの配布の場合は審査は不要となっています。そのため内部テスターには基本的に社内の人間などを登録します。
内部テスターの登録・削除はいつでも行えるようになっていますが、登録する際はメールアドレス宛に招待メールが飛ぶのでそれを承諾してもらう必要があります。
外部テスター
外部テスターはApp Store Connectへ未招待のユーザーのことを指します。配布できるのは最大10,000人までとかなり多く、メールアドレスまたは公開URLのどちらかを使用して周知することが可能となっています。
外部テスターへの配布にはAppleの審査に通過する必要がありますが、審査自体は1日程度で完了することが多いです。
まとめ
- 内部テスターは100人まで
- 内部テスターへの配布は審査不要
- 外部テスターは10,000人まで
- 内部テスターへの配布は審査必要
「Test Flightアプリ」を使用して実機でテスト
テスターに配布されるアプリは通常のApp Storeではなくテスト専用のTest Flightアプリを使用します。そのためテスターになる人には内部テスターでも外部テスターでもTest Flightアプリのインストールを行なってもらう必要があります。
Ad Hocとの違い
テスト配布の方法はいくつかありますが、Apple公式が提供している仕組みに「Ad Hoc」があります。Ad Hocも同様に複数人にアプリをテスト配布するための仕組みですが、Test Flightと異なりApp Storeを経由せずに、特定の端末だけにアプリを配布する方法になります。
違い
| Test Flight | Ad Hoc | |
|---|---|---|
| 配布対象 | 内部テスター ∞人 / 外部テスター 10,000人 | UDIDを登録した特定のiOS端末(最大100台/年) |
| 証明書 | 配布用証明書(Distribution Certificate) | 配布用証明書(Distribution Certificate) |
| プロビジョニングプロファイル | App Store / Test Flight配布用(App Store Connect) | Ad Hoc配布用(Ad Hoc) |
| 配布方法 | App Store経由(Test Flightアプリ) | IPA を直接渡す(URL / AirDrop / MDM など) |
| 審査 | 一部あり | なし |
| アプリ有効期限 | 90日間 | 証明書 / プロビジョニングプロファイルの有効期限切れまで |
| 証明書 / プロビジョニングプロファイルの有効期限切れの挙動 | アプリ起動⚪︎ / 新規インストール✖︎ / アップデート✖︎ | アプリ起動✖︎ / 新規インストール✖︎ / アップデート✖︎ |
「Ad Hoc」は配布できる端末はUDIDを登録したもののみとしたい場合や社内だけでクローズにアプリを配布したい場合などに活用することが可能です。
内部テスターの登録方法
内部テスターを登録するには「App Store Connect」にログインし「ユーザとアクセス」をクリックします。
現在登録されているテスターが表示されていると思うので「+」をクリックしてユーザを登録していきます。ユーザには役割を付与することができ、「Admin(管理者)」や「Marketing」などによって権限が異なるので適切なものを指定して「招待」をクリックします。
指定したメールアドレスに招待メールが届くのでそこから招待を受けると内部テスターとして登録されます。
テスターの権限の種類
テスター(正確にはApp Store Connect管理)の権限の種類と役割は以下のとおりです。
| 権限 | 概要 |
|---|---|
| Account Holder | プログラムへの登録を完了させた人。Apple との契約を締結する担当者 |
| Admin | チームの補佐役でAccount Holder と同じ権限 |
| Finance | 財務情報の管理担当 |
| App Manager | 価格、App Store 情報、App の開発とデリバリなどApp 自体の管理担当 |
| Developer | Appの開発とデリバリーを管理担当 |
| Marketing | マーケティング管理担当 |
| Sales | App の売上やダウンロード数などのデータを分析担当 |
| Customer Support | カスタマーレビュー担当 |
また権限の強さ的にはAccount Holderが一番強く、Finance、Marketing、Sales、Customer Supportが同列で一番弱く設定されています。権限の違いにより作業可能な内容が異なるので以下公式サイトを参考に適切な権限を振ってあげる必要があります。
アプリテスト配布の流れ
- アプリを開発
- 通常のリリースの流れでApp Store Connectにアーカイブ
- 内部ならベータテスターを登録
- テスターはTest Flightアプリをインストール
- AppStore Connectの「Test Flight」タブから配布するビルドを選択
- 内部 or 外部へ配布 (外部のみ審査あり)
テスター(内部)へのアプリの配布方法
内部(ベータテスターとして登録してある)の人へ配布する方法を見ていきます。先に先ほどの手順でテスターを増やしておいてください。
配布したいアプリの申請画面から「Test Flight」をクリックします。左側にある「内部テスト」の「+」からグループを登録します。ここで「自動配布を有効にする」にチェックを入れるとビルドが更新されるたびにそのグループに自動配布されます。チェックを外すとグループに対して手動でビルドを追加するたびに配布されるようになります。この設定はグループ作成後では変更できないので注意してください。
グループの中に対象のテスターを追加します。追加ができたら「ビルド」からテスト配布したいバージョンの「管理」ボタンをクリックします。
輸出コンプライアンスの内容を確認して「保存」をクリックすると対象者にメールが送信されます。実際に届くメールが以下の通りです。テスターは「View in TestFlight」から記載されているコードをアプリに打ち込むことでテスト配布が完了になります。
テスト配布時にメモをつける
テスト配布時にテスターに識別しやすいようにメモをつけることも可能です。
ビルド番号部分をクリックすると以下のような画面に遷移するので「テストの詳細」の中に伝えたい内容を記述しておけばテスターがインストールする際に表示されるようになります。
テスター(外部)へのアプリの配布方法
続いて外部へのアプリの配布方法を見ていきます。基本的な手順は内部と同じです。
配布したいアプリの申請画面から「Test Flight」をクリックします。左側にある「外部テスト」の「+」からグループを登録します。
続いて「ビルド(0)」横の「+」からテスト配布したいバージョンをクリックし、審査に必要な情報を入力していき「審査へ提出」をクリックします。するとリリース時同様に審査が始まり、審査が通ると公開用のhttps://testflight.apple.com/join/xxxxx形式のURLが発行されます。
このリンクからテスト用のアプリをTest Flightアプリへインストールすることが可能になります。
外部テスターに配布できない場合
ビルドをアップロードしたのに外部テスターに配布ができない場合はビルド設定に問題がある可能性があります。アーカイブ作成後アップロードする際に「App Store Connect」を選択していたか確認してください。「TestFlight Internal Only(内部テスターのみ)」にしていた場合は配布できないので注意してください。
その他の項目の種類と概要については公式サイトを参考にしてください。
公式リファレンス:Select a method for distribution
ビルド番号とアプリバージョン
Test Flightで配布するためのビルドもアプリバージョンとビルド番号の管理が必要になります。
アプリバージョン
アプリバージョンはX.X.Xのようなセマンティックバージョニング形式であることが多いと思います。App Store Connectでアプリの申請を出す際にバージョンを指定して申請を作成しますが、そこで指定しているバージョンとTest Flightであげるバージョンは特にリンクしていません。
そのため初回1.0.0で作成しても2.0.0のビルドをあげることも可能になっています。
ビルド番号
ビルド番号は通常のアップロード同様に一度アップロードしているビルド番号以下のものはアップロードできないので注意してください。ただこれはアプリバージョンが同じ場合に限るのでアプリバージョンをインクリメントすればまた1からアップロードすることができるようになります。
Test Flightへのアップロードを自動化
「Fastlane」を使用することでコマンド1つでTest Flightにビルドをアップロードすることも可能です。詳細は以下の記事を参考にしてください。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。





