2024.9.16
XcodeのBETA版/RC版で作ったipaファイルは外部テストで配信できない
業務用アプリを App Store Connect を介したカスタムAppとして配信する場合に必ずお世話になるのが TestFlight です。TestFlight を使ったテストには内部・外部の2種類があります。
(研修資料より)
カスタムAppの開発シーンでは、主に内部テストを使います。
一方で外部テストは、動作確認だけお願いしたいなぁというライトな関係者、つまり開発会社やエンドユーザ企業のアプリ担当者ではないけどテストだけは…という場合に活用できます。(一般消費者向けアプリではベータテスターを募集して使って貰う…的な用途に使用しますね)
この外部テスト、AppleIDとして登録されたメールアドレスさえあればokなため超お手軽で便利なのですが、余り知られていないちょっとした罠があります。本稿はそんな外部テストの罠について紹介します。順に見ていきましょう。
Xcodeリリース版以外でビルドしたipaは配布できない
開発現場によっては、毎年9月頃に発生するかも知れない現象が以下のようなものです。外部グループのテスターに向けてTestFlight配信しようとする時に表示されるエラーです。
(ADEPからカスタムAppに移行して、少し慣れてきた頃に発生するかも知れない)
自動配信をONにしていないテストグループにはアプリのTestFlightタブから明示的にTestFlight向け配信操作を行いますが、登録されているビルド(ipa)がベータ版Xcodeで生成されていた場合、配信先に外部グループを指定できません。上図のようなエラーが出てしまいます。
ipaの中にはXcodeのビルド情報が含まれているため、その情報で判断しているものと思われます。ベータ版に限らずリリース候補版(RC版)でも同じです。リリース版のXcodeでビルドされていない限り、外部テスト配布はできません。
上図のようなエラーが表示されたら、リリース版のXcodeに切り替えてビルドし直して再度アップロードしましょう。最新のXcodeを使っていこうという姿勢は基本的に推奨されるべきものですが、不特定多数(上限1万人)に配布するにはまだ気が早いということなのだと思います。
(リリース版が出るまで待つか、待てないなら前バージョンのリリース版Xcodeを使う)
外部テストの「壁」を意識する
Appleには、不特定多数に無制限にアプリを配布されたくないという強い意思があります。
App Store を原則必須としていることも、証明書やプロビジョニングプロファイル等のややこしい仕組みを強いていることも全部そのためです。自由なアプリ開発と配布を許容した為にセキュリティインシデントを多発させてきたWindowsとは対照的です。
TestFlightの外部テストは上限が10000ユーザで、受け取り手に必要なのはAppleIDだけなので、不特定多数にアプリ配布するのに結構近いと言えなくもありません。なので、悪用されないよう、外部テストには何かと制限や制約がついて回ります。本稿で紹介した制限も含めて例えば、
- 内部テストを実施していない状態で外部テストはできない
- ベータ版/RC版のXcodeでビルドしたipaファイルは配布できない
- (本審査ほど厳しくはないが)一応審査がある
等々ですね。
(外部テストの配信をする画面。「審査へ提出」とある)
小規模な業務用アプリであればTestFlight外部テストを使うこともないかも知れませんが、内部テストのように自由にはいかないことを意識しておくと良いでしょう。
以上、Xcodeベータ版/RC版を使用している時の注意事項を紹介しました。何かの参考になれば幸いです。