Flutterを使う
まずdoctorを確認
プロジェクト、依存関係のロックファイル、必要なリソースをまとめてMacに転送します。既存プロジェクトで指定されたFlutterのバージョンを使い、まず環境の問題を解消してから、アプリのコードを変更してください。
必要なツールをそろえる
Flutter SDK、Xcode一式、CocoaPodsを用意します。プロジェクトでFlutterやRubyのツールチェーンのバージョンが指定されている場合は、リポジトリのルールに従ってインストールし、ローカルとビルドマシンで異なるバージョンを使わないようにしてください。
診断を実行し、iOSツールチェーンの警告を1つずつ確認します。デバイス接続に関する警告はアーカイブを妨げない場合がありますが、Xcode、SDK、署名設定が不足している場合は先に対応が必要です。
2種類の検証を使い分ける
コンパイルできるかだけを確認する場合は、まず署名なしのreleaseビルドを実行できます。これは署名済みインストールパッケージの代わりにはならず、そのまま配布することもできません。
.ipaを書き出す場合は、XcodeのSigning & CapabilitiesでTeam、Bundle Identifier、証明書、プロビジョニングプロファイルを確認してから、本番用のビルドを実行します。
順番に実行
flutter --version
flutter doctor -v
flutter pub get
flutter build ios --release --no-codesign
flutter build ipa --release
最後のコマンドを実行するには、署名設定がすべて整っている必要があります。出力先と書き出し方法は、使用中のFlutterのバージョンとコマンド出力に従ってください。完了後は成果物をローカルにダウンロードして検証します。
| エラーの手がかり | まず確認すること | 最初にしないこと |
|---|---|---|
| CocoaPods not installed | CocoaPodsがインストールされているか、現在のターミナルからpodコマンドを実行できるか確認してください。 | iOSプロジェクト全体をいきなり削除しないでください。 |
| No profiles / signing | Bundle Identifier、Team、書き出し形式が一致しているか確認し、プロビジョニングプロファイルの有効期限も確認してください。 | 依存関係のエラーと署名エラーを混同して対処しないでください。 |
| Deployment target | プラグインの要件を確認し、プロジェクトとPodfileの最低iOSバージョンをそろえてから依存関係をインストールしてください。 | 1つのtargetだけ変更して、すぐにアーカイブを再試行しないでください。 |