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

お知らせ

カリキュラムなし!学びたいことだけをプロと学べる『TechCampus』の詳細情報

カリキュラムなし!学びたいことだけをプロと学べる『TechCampus』の詳細情報

カリキュラムなし!学びたいことだけをプロと学べる『TechCampus』の詳細情報!興味のある人はぜひコミュニティに参加ください!

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

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

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

Read More

タグ

Flutter (103)初心者向け (26)イベント (17)Google Apps Script (15)Nextjs (11)可茂IT塾 (8)Firebase (7)riverpod (6)React (6)ChatGPT (5)新卒 (4)就活 (4)vscode (4)デザイン (4)Dart (4)JavaScript (4)FlutterWeb (3)Prisma (3)NestJS (3)Figma (3)Slack (3)TypeScript (3)ワーケーション (3)インターン (3)お知らせ (3)設計 (2)線型計画法 (2)事例 (2)Image (2)File (2)画像 (2)iOS (2)アプリ開発 (2)React Hooks (2)tailwindcss (2)社会人 (2)大学生 (2)RSS (1)CodeRunner (1)個人開発 (1)Android (1)Unity (1)WebView (1)Twitter (1)フルリモート (1)TextScaler (1)textScaleFactor (1)学生向け (1)supabase (1)Java (1)Spring Boot (1)shell script (1)正規表現 (1)パワーポイント (1)趣味 (1)モンスターボール (1)CSS (1)SCSS (1)Cupertino (1)ListView (1)就活浪人 (1)既卒 (1)保守性 (1)iPad (1)シェアハウス (1)スクレイピング (1)PageView (1)画面遷移 (1)flutter_hooks (1)Gmail (1)GoogleWorkspace (1)ShaderMask (1)google map (1)Google Places API (1)GCPコンソール (1)Google_ML_Kit (1)Vercel (1)Google Domains (1)Git (1)オンラインオフィス (1)オブジェクト指向 (1)クラスの継承 (1)ポリモーフィズム (1)LINE (1)Bitcoin (1)bitFlyer (1)コミュニティー (1)文系エンジニア (1)Freezed (1)markdown (1)GlobalKey (1)ValueKey (1)Key (1)アイコン (1)go_router (1)debug (1)datetime_picker (1)Apple Store Connect (1)FlutterGen (1)デバッグ (1)Widget Inspector (1)検索機能 (1)Shader (1)Navigator (1)メール送信 (1)Dio (1)CustomClipper (1)ClipPath (1)Material Design (1)カスタム認証 (1)アニメーション (1)Arduino (1)ESP32 (1)経験談 (1)フリーランス (1)mac (1)csv (1)Dialog (1)BI (1)LifeHack (1)ショートカット (1)Chrome (1)高校生 (1)キャリア教育 (1)非同期処理 (1)生体認証 (1)BackdropFilter (1)レビュー (1)getAuth (1)Algolia (1)コンサルティング (1)Symbol (1)

お知らせ

カリキュラムなし!学びたいことだけをプロと学べる『TechCampus』の詳細情報

カリキュラムなし!学びたいことだけをプロと学べる『TechCampus』の詳細情報

カリキュラムなし!学びたいことだけをプロと学べる『TechCampus』の詳細情報!興味のある人はぜひコミュニティに参加ください!

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

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

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

Read More