2020年12月11日星期五

2020年iOS自动打包脚本

2020年iOS自动打包脚本

1.准备工作

安装fastlane
至于fastlane是做什么的就不多说了,自行百度;

sudo gem install fastlane --verbose

安装成功后没有修改gem source 的修改一下,我用的是https://gems.ruby-china.com/
终端打开项目目录执行fastlane init, fastlane init执行过程中需要选择一些东西,如What would you like to use fastlane for? 并把Gemfile中的source修改成你的gem source的源,

wk@wakedatadeMacBook-Pro uniapp-yuexiuhui-iOS % fastlane init[✔] 🚀 [✔] Looking for iOS and Android projects in current directory...[15:40:54]: Created new folder './fastlane'.[15:40:54]: Detected an iOS/macOS project in the current directory: 'uniapp-yuexiuhui-iOS.xcworkspace'[15:40:55]: -----------------------------[15:40:55]: --- Welcome to fastlane 🚀 ---[15:40:55]: -----------------------------[15:40:55]: fastlane can help you with all kinds of automation for your mobile app[15:40:55]: We recommend automating one task first, and then gradually automating more over time[15:40:55]: What would you like to use fastlane for?/usr/local/Cellar/fastlane/2.168.0/libexec/gems/highline-1.7.10/lib/highline.rb:624: warning: Using the last argument as keyword parameters is deprecated1. 📸 Automate screenshots2. 👩‍✈️ Automate beta distribution to TestFlight3. 🚀 Automate App Store distribution4. 🛠 Manual setup - manually setup your project to automate your tasks? 这个地方输入你要上传到那个平台,一般选2、3、4

下一步需要提醒你输入的是你的iOS开发者账号

[15:44:09]: To use App Store Connect and Apple Developer Portal features as part of fastlane,[15:44:09]: we will ask you for your Apple ID username and password[15:44:09]: This is necessary for certain fastlane features, for example:[15:44:09]: [15:44:09]: - Create and manage your provisioning profiles on the Developer Portal[15:44:09]: - Upload and manage TestFlight and App Store builds on App Store Connect[15:44:09]: - Manage your App Store Connect app metadata and screenshots[15:44:09]: [15:44:09]: Your Apple ID credentials will only be stored in your Keychain, on your local machine[15:44:09]: For more information, check out[15:44:09]: 	https://github.com/fastlane/fastlane/tree/master/credentials_manager[15:44:09]: [15:44:09]: Please enter your Apple ID developer credentials/usr/local/Cellar/fastlane/2.168.0/libexec/gems/highline-1.7.10/lib/highline.rb:624: warning: Using the last argument as keyword parameters is deprecated[15:44:09]: Apple ID Username:

然后是iOS开发者账号的密码,如果你的账号下面有多个企业或组织,然后是选择证书然后就配置完了。
然后在你的项目目录中会多一个fastlane文件夹,一个Gemfile,Gemfile中需要修改source就可以了。fastlane中有两个文件,一个Appfile一个Fastfile,Appfile保存的是iOS开发者账号的信息和证书信息,Fastfile中是自动打包的脚本,对应纯原生的代码这样基本就可以了;
而对于现在混口开发盛行的时代,我们项目基本都是uni-app写的所以才需要再写一些脚本,开发就是越来越懒,一步也不喜欢手动去做,那么脚本的用处就大了;

2.写脚本

  1. 打包到蒲公英的脚本
#!/bin/bashenv=$1buildUpdateDescription=$2ipa_name="项目名"api_key="蒲公英的api_key"if [ ! -n "$1" ] ;then env="build"fi# 向iOS的Info.plist里面写值# environment="production"# if [[ $env = "dev" ]]; then# 	environment="development"# fi# path=$(cd `dirname $0`; pwd)# target_plist="$path/uniapp-yuexiuhui-iOS/Info.plist"# echo $target_plist# for plist in "$target_plist"; do# 	if [[ -f "$plist" ]]; then# 		/usr/libexec/PlistBuddy -c "Set :Environment $environment" "$plist"# 	fi# done# 修改YXHCommon.m文件,这个的目的主要是切换生产环境与测试环境的,修改的值主要用于条件编译cd uniapp-yuexiuhui-iOS/utilsif [[ "dev" = $env ]]; then sed -i '' 's/#if false/#if true/g' YXHCommon.melse sed -i '' 's/#if true/#if false/g' YXHCommon.mficd ../..cd ../uniapp-yuexiuhui-vue# 而下面的npm run xxx这个主要是HbuilderX 打包脚本if [ "dev" = $env ]then npm run dev:app-pluselse npm run build:app-plusfiecho '------覆盖www------'cp -R dist/$env/app-plus/ ../$ipa_name/$ipa_name/Pandora/apps/__UNI__E59AA60/wwwcd ../uniapp-yuexiuhui-iOSfastlane pgycd ./buildexport_ipa_path=$(cd `dirname $0`; pwd)#上传ipa到蒲公英 我自己加的if [ -f "${export_ipa_path}/${ipa_name}.ipa" ]then echo '开始上传ipa/apk到蒲公英' result=$(curl -F "file=@${export_ipa_path}/${ipa_name}.ipa" -F "_api_key=${api_key}" -F "buildUpdateDescription=${buildUpdateDescription}" 'http://www.pgyer.com/apiv2/app/upload')else echo "在目录:${export_ipa_path}/${ipa_name}.ipa 不存在"fiecho '上传到蒲公英成功'exit 0

2.上传到TestFlight的脚本

#!/bin/bashenv=$1if [ ! -n "$1" ] ;then env="build"ficd uniapp-yuexiuhui-iOS/utilsif [[ "dev" = $env ]]; then sed -i '' 's/#if false/#if true/g' YXHCommon.melse sed -i '' 's/#if true/#if false/g' YXHCommon.mficd ../..cd ../uniapp-yuexiuhui-vueif [ "dev" = $env ]then npm run dev:app-pluselse npm run build:app-plusfiecho '------覆盖www------'cp -R dist/$env/app-plus/ ../uniapp-yuexiuhui-iOS/uniapp-yuexiuhui-iOS/Pandora/apps/__UNI__E59AA60/wwwcd ../uniapp-yuexiuhui-iOSfastlane betaexit 0

3.如果运行脚本报错请检查shell语法,当然你也可以用Python写
如有什么疑问可以联系我:
WeChat:fengsh_h
e-mail: fengsh_h@aliyun.com









原文转载:http://www.shaoqun.com/a/498577.html

mein:https://www.ikjzd.com/w/1601

beien:https://www.ikjzd.com/w/1336

oklink:https://www.ikjzd.com/w/1362


2020年iOS自动打包脚本1.准备工作安装fastlane至于fastlane是做什么的就不多说了,自行百度;sudogeminstallfastlane--verbose安装成功后没有修改gemsource的修改一下,我用的是https://gems.ruby-china.com/终端打开项目目录执行fastlaneinit,fastlaneinit执行过程中需要选择一些东西,如Whatwou
汇通天下物流:汇通天下物流
landing:landing
东阿药王山好玩吗?东阿药王山景区怎么样?:东阿药王山好玩吗?东阿药王山景区怎么样?
关于亚马逊跟卖,如何防止被跟卖,以及如何投诉跟卖的简单介绍:关于亚马逊跟卖,如何防止被跟卖,以及如何投诉跟卖的简单介绍
揭秘你不了解的国外礼节 - :揭秘你不了解的国外礼节 -

没有评论:

发表评论