flutter build ipa コマンドでビルドをApple Store Connectへアップロードする方法

image

この記事は、【 可茂IT塾 Advent Calendar 2022 】の6日目の記事です。

はじめに

Apple Store Connectにアプリが登録されている前提の話です。 Bundle IDの登録やApple Store Connectにアプリを作成していない場合は、作成後に以下の手順を踏んでください。

flutter build ipa コマンドとは

flutter build ipa コマンドとは、Xcodeのビルドアーカイブ(.xcarchiveファイル)とApp Store app bundle(.ipa ファイル)を作成するコマンドです。
公式ドキュメントは以下です。
https://docs.flutter.dev/deployment/ios

flutter build ipaだけでApple Storeへビルドファイルをアップロードするためには、ExportOptions.plistというファイルを用意し、こちら側で編集する必要があります。

ExportOptions.plistの取得方法

flutter build ipa

上記のコマンドを使用後に、project/build/ios/ipa内にExportOptions.plistが自動生成されます。

/ipa
  ├── DistributionSummary.plist
  ├── ExportOptions.plist
  ├── Packaging.log
  └── your_app_name.ipa

ExportOptions.plistの中身は以下のような感じになっていると思います。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>generateAppStoreInformation</key>
    <false/>
    <key>manageAppVersionAndBuildNumber</key>
    <true/>
    <key>method</key>
    <string>app-store</string>
    <key>signingStyle</key>
    <string>automatic</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>YOUR_TEAM_ID</string>
    <key>uploadSymbols</key>
    <true/>
</dict>
</plist>

ExportOptions.plistを編集する

project/ios/configsというフォルダの中に、先ほどのExportOptions.plistを入れておきます。

そして、flutter build ipaコマンドの実行後にApple Store Connectへのアップロードができるように、destinationuploadを設定します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>generateAppStoreInformation</key>
    <false/>
    <key>manageAppVersionAndBuildNumber</key>
    <true/>
<key>destination</key>
<string>upload</string>
<key>method</key> <string>app-store</string> <key>signingStyle</key> <string>automatic</string> <key>stripSwiftSymbols</key> <true/> <key>teamID</key> <string>YOUR_TEAM_ID</string> <key>uploadSymbols</key> <true/> </dict> </plist>

ExportOptions.plistの設定項目一覧は以下が参考になります。 https://qiita.com/taisuke_h/items/e37d96c96a811b630c0c

オプションコマンド --export-options-plistを使用

flutter build ipaのオプションコマンド--export-options-plistで、ExportOptions.plistファイルのパスを指定しましょう。
今回はproject/ios/configsに配置しているので、以下のようになります。

flutter build ipa --export-options-plist="ios/configs/ExportOptions.plist"

上記のコマンドでApple Storeにビルドファイルがアップロードされると思います。  

最後に

いかがでしたか?
1コマンドでApple Store Connectにビルドファイルをアップロードできるようになりました。
もうXcodeを開いて、アーカイブを作成して... という手順は不要です。 参考になれば幸いです。

参考記事

https://docs.flutter.dev/deployment/ios#create-a-build-archive
https://crammbon.com/2022/02/08/flutter-build-ipa/
https://medium.com/flutter-jp/ipa-e176de0276c6

お知らせ

3月19日開催のアプリ開発講座の参加者募集中!!

3月19日開催のアプリ開発講座の参加者募集中!!

3月19日にアプリ開発講座を開催します!会場は岐阜県美濃加茂市のコワーキングスペース「こやぁね」です。興味のある方は是非ご参加ください!

Read More
可茂IT塾ではFlutterインターンを募集しています!

可茂IT塾ではFlutterインターンを募集しています!

可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More

タグ

Flutter (70)初心者向け (22)イベント (15)Nextjs (8)Google Apps Script (7)可茂IT塾 (6)Firebase (6)React (5)新卒 (3)就活 (3)給与支払報告書 (3)riverpod (3)Dart (3)JavaScript (3)TypeScript (3)インターン (3)FlutterWeb (2)画像 (2)アプリ開発 (2)React Hooks (2)tailwindcss (2)ワーケーション (2)社会人 (2)大学生 (2)お知らせ (2)webfeed (1)RSS (1)CodeRunner (1)VSCode (1)個人開発 (1)設計 (1)フルリモート (1)学生向け (1)Java (1)Spring Boot (1)エンジニア (1)DeviceOrientation (1)正規表現 (1)神楽 (1)趣味紹介 (1)プログラミングだけではない可茂IT塾のメンバー (1)線型計画法 (1)事例 (1)PreferredSize (1)マテリアルデザイン (1)Material (1)クパチーノデザイン (1)Cupertino (1)ListView (1)就活浪人 (1)既卒 (1)保守性 (1)シェアハウス (1)スクレイピング (1)Gmail (1)Googleグループ (1)GoogleWorkspace (1)ShaderMask (1)google map (1)Google Places API (1)Vercel (1)Google Domains (1)branch (1)Git (1)オンラインオフィス (1)Freezed (1)アイコン (1)Apple Store Connect (1)FlutterGen (1)検索機能 (1)Navigator (1)メール送信 (1)カスタム認証 (1)アニメーション (1)FloatingActionButton (1)Arduino (1)ESP32 (1)経験談 (1)フリーランス (1)Dialog (1)Figma (1)デザイン (1)Slack (1)BI (1)非同期処理 (1)BackdropFilter (1)iOS (1)レビュー (1)getAuth (1)匿名 (1)Algolia (1)chakra-ui (1)コンサルティング (1)Symbol (1)reactive_forms (1)

お知らせ

3月19日開催のアプリ開発講座の参加者募集中!!

3月19日開催のアプリ開発講座の参加者募集中!!

3月19日にアプリ開発講座を開催します!会場は岐阜県美濃加茂市のコワーキングスペース「こやぁね」です。興味のある方は是非ご参加ください!

Read More
可茂IT塾ではFlutterインターンを募集しています!

可茂IT塾ではFlutterインターンを募集しています!

可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More