Flutter ipaをApp Store Connectにアップロード

Build and release an iOS app | Flutter

を読んでいきます。

バンドルIDの作成とか、新規Appの追加などは、特に難しい内容はないはず。

ただ、ここに、

https://docs.flutter.dev/deployment/ios#create-an-application-record-on-app-store-connect

Since Flutter does not currently support tvOS, leave that checkbox unchecked. Click Create.

という記述があって、そりゃそうだなと思いながら、勢い余って、チェック入れないように気をつけました。

で下記が重要な設定で

https://docs.flutter.dev/deployment/ios#review-xcode-project-settings

Runner.xcworkspaceをXcodeで開いて編集します。

この辺りは、pubspec.yamlに書いてうまいことやってくれるわけではないようです。

続いて、Signing & Capabilitiesの部分ですが、Automatically manage signingにチェックが入ったままでいいそうです。

昔は、周りでかなり苦労した話をよく聞きますが、かなり簡単になってるようです。

ちなみに、Flutterではない別のプロジェクトでもここはチェックを入れたままにしています。

また、忘れそうな設定としては、Deployment Target を変更した場合は下記も一緒に変更するようです。

MinimumOSVersion

上記の設定を一通り行うと、下記のリンク先にあるようにflutter build ipaを実行することができるようになります。

https://docs.flutter.dev/deployment/ios#create-an-app-bundle

ここで、少し横道にそれますが、reverse engineerという単語が出てきますが、 デコンパイルという用語よりも一般的なんだなと思いました。

ここは、まだデモの段階ならいいと思いますが、商用リリース前にはもう一度見直さないといけないと思います。

次に下記を参考にして、ipaApp Store Connectにアップロードします。

https://docs.flutter.dev/deployment/ios#upload-the-app-bundle-to-app-store-connect

自分は、3番目の方法を選びました。

open build/ios/archive/Runner.xcarchive

で、Archiveの一覧が表示されると思います。そこでValidate AppDistribute Appを手順の通り行います。

ここで

Note: When you export your app at the end of Distribute App, Xcode will create a directory containing an IPA of your app and an ExportOptions.plist file. You can create new IPAs with the same options without launching Xcode by running flutter build ipa --export-options-plist=path/to/ExportOptions.plist. See xcodebuild -h for details about the keys in this property list.

という記述が見つかりますが、flutter build ipaの時点でExportOptions.plistが見つかるので、exportはもしかすると不要かもしれません。