はじめに
FlutterでiOSのリリースビルドからAppStoreConnectにアップロードするまでを自動化する方法を調べたので記事にします。
本記事では、ビルド後、altoolを使用してビルドのアップロードする方法を紹介します!
シェルスクリプトを作成
シェルスクリプトを作成
Flutterのプロジェクトのルートに下記のスクリプトを作成してください
ビルドからaltoolを使用してビルドをアップロードするまでのシェルスクリプトを作成します。
API_KEYとISSUER_IDはあとで置き換えが必要です。
#!/bin/sh
fvm flutter clean
fvm flutter pub get
fvm flutter build ipa --release --flavor prod
# API_KEYとISSUER_IDについては後述します
xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey API_KEY --apiIssuer ISSUER_ID
実行権限付与
作成が終わったら、chmod 755で実行権限をつけます。
App Store Connect APIキーの作成
- AppStoreConnect - ユーザーとアクセスのページにアクセスします
- 統合のタブを押下し、チームキーにキーを作成します
- 適当な名前とビルドをアップロード可能な権限を設定します(AppManagerにしましたが、Developerでも問題ないはず)
- 作成できたらキーのダウンロードとAPIキーとIssureIDをコピーしておきます
- キーのダウンロードが完了したら下記のいずれかのフォルダに配置します
- Flutterのプロジェクトフォルダのパス/private_keys
- ~/private_keys
- ~/.private_keys
- ~/.appstoreconnect/private_keys
※ドキュメントは見つからなかったのですが、コマンドを実行したエラーメッセージに上記のフォルダに配置するように書いてました
- 配置できたら、シェルスクリプトのAPI_KEYとISSUER_IDを編集してください
実行
シェルスクリプトを実行すれば、ビルドとアップロードまで自動でしてくれるはずです。
おまけ
シェルスクリプトの最後かコマンドの後ろにafplay
をつけると、コマンドが終わったら音を鳴らしてくれるので、完了に気づきやすくなります。
#!/bin/sh
fvm flutter clean
fvm flutter pub get
fvm flutter build ipa --release --flavor prod
# API_KEYとISSUER_IDについては後述します
xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey API_KEY --apiIssuer ISSUER_ID
+ afplay /System/Library/Sounds/Ping.aiff
OR
./deploy_ios.sh;afplay /System/Library/Sounds/Ping.aiff;