FlutterアプリのiOS CI/CD設定手順

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でテスト可能になることを確認する。

FlutterアプリをXcode Cloudでビルドする

数年ぶりにFlutterを試してみたら、思いの外快適で安定している。大規模なアプリでどこまで使えるのかはわからないが、少なくとも趣味で片手間にアプリを書く程度ならかなり良さそうだ。勉強がてら何かしらアプリを一つ作りたいと思い、年末頃から週末の空いた時間に開発を続けているのだが、ようやくそろそろリリースが見えてきた。

“FlutterアプリをXcode Cloudでビルドする” の続きを読む