Bundle Identifierの登録
Certificates, Identifiers & ProfilesでBundle Identifierの登録を行う。
App Store Connectでのアプリの作成
App Store ConnectのApps画面から「New App」を選んでアプリを作成する。Bundle Identifierは↑のステップで作成したものを選ぶ。
Xcode ProjectのBundle Identifier変更
Flutterから書き出されたXcode Projectを開いて、Bundle Identifierを↑のステップで作成したものに変更する。Product Flavorを使っている場合はそれぞれのFlavor用にConfigを作成して、それぞれのBundle Identifierを設定する。
Complianceの設定
Info.plistを開き、App Uses Non-exempt Encryptionの設定を追加する。
Post Cloneスクリプトの追加
Xcode Cloudでプレビルド処理を行うためci_scripts/ci_post_clone.sh
を作成する。
パッケージの使用有無によってCocoaPodsの呼び出しの有無、Product Flavor / Dart-define-from-fileの使用有無によって flutter build
の呼び出し方/引数が変わるので注意する。
ここまでの設定内容をレポジトリにPushしておく。
Testing Groupの作成
App Store ConnectのアプリのTestFlight設定画面で、Internal Testing用のTesting Groupを作成し、テスト用のApple IDを招待しておく。
Workflowの作成とテスト実行
Xcode CloudのWorkflowの作成を行う。ArchiveアクションのDeployment PreparationはTestFlight (Internal Testing Only)かTestFlight and App Storeのいずれかを選ぶ。Xcode Cloudの仕様なのか不具合なのか、この段階ではTestFlightの配信の設定ができないことがあるので、一旦ここまでで設定を完了し、手動で初回のビルドをトリガーし、ビルドが成功するかを確認する。
Post-Actionの設定とテスト再実行
Workflowの実行に成功したら、WorkflowをEditし、「TestFlight Internal Testing」のPost Actionを追加する。↑で作ったTesting Groupを指定し、再びビルドをトリガーし、ビルドが自動でアップロードされてTestFlightでテスト可能になることを確認する。