深色模式
Flutter打包iOS上传AppStore
目标
一键上传ipa,不要在XCode中点来点去,浪费时间。
思路
使用xcrun
工具。
实现
准备工作:
在【App Store Connect】 -> 【用户和访问】 -> 【集成】 -> 【App Store Connect API】中,生成一个密钥(只有账户持有者可以生成),下载此密钥,放到本地的特定目录中,这个特定目录可选为:
项目根目录/private_keys
:安全性不高,如果在git中ignore,则有丢失的风险~/private_keys
~/.private_keys
~/.appstoreconnect/private_keys
:推荐此目录,看目录名,就知道密钥来自哪里
此密钥只能从App Store Connect网站下载1次。
使用命令行上传ipa(该命令会根据密钥ID,从上面的4个目录中查找密钥文件,如果没有找到,执行失败。):
sh
xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey <密钥ID> --apiIssuer <Issuer ID>
需要注意的是,上传到App Store Connect的包,Build数字必须递增,不然会上传失败。
在上传之前,也可以先通过命令验证此包有没有问题:
sh
xcrun altool --validate-app --type ios -f build/ios/ipa/*.ipa --apiKey <密钥ID> --apiIssuer <Issuer ID>
实践
在Makefile中:
makefile
# 发布,AppStore正式包
deploy-app-store: build-ipa-appstore-pro
xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey <apiKey> --apiIssuer <apiIssuer>
# 打包AppStore,正式环境
build-ipa-appstore-pro:
flutter build ipa \
--dart-define-from-file .env.pro-mode \
--export-options-plist ios/appstore.plist \
-t lib/main.dart