
从上图可以看出使用自动化出包,可以优化掉好几个需要人工介入的步骤,优化开发流程,节省开发者的时间。
自动打包的原理概不累述了,测试过程中如果有问题,可以用终端 cd 到项目目录,单独执行出问题的语句,再把错误的输出丢到搜索引擎,只要相信你遇到的问题别人肯定也会遇到,就一定能得到解决。如果有例外,那我相信——能弄出史无前例的问题的你,一定也厉害到可以史无前例的予以解决~当然也可以试着给我留言,说不定三个臭皮匠果真赛过诸葛亮。
脚本内容基本是基于网络上内容,做了整合,修复了一些可能会导致打包失败的错误。将打印添加颜色输出,以及添加了一些注释。
一、参考
延伸知识:多渠道自动打包
二、脚本源码
已做脱敏处理。
自动打包并上传
1 | #打包前需要在 xcode 工程中证书选项设置 `Automatically manage signing` 否则会报错 |
上传成功成功后发送邮件
1 | # -*- coding: utf-8 -* |
三、问题
上传工具路径不对问题
解决方法来源:xcode11 构建上传问题
从原来的
1 | /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool |
变为了
1 | /Applications/Xcode.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework/Versions/A/Support/altool |
$(MARKETING_VERSION) 获取版本号失败
解决方法来源:How to handle $(MARKETING_VERSION) of Xcode 11 by CI
使用一下语句获取
1 | # get release number from Xcode build settings |
xcrun altool –upload-app -f path -u username -p password 上传失败
错误信息:
1 | Error: Errors uploading 'xxx.ipa': ( |
解决方式:到 https://appleid.apple.com 生成一个专用密码就行了,然后用这个密码改到上面去,再次执行。即:xcrun altool --upload-app -f a/b/xxx.ipa -u [[email protected]](mailto:[email protected]) -p 生成的专用密码