AutoBuildIOSProject
1.logo & appdisplayname 配置
a.由于有一些信息需要测试人员发布时手动配置,所以暴露一个txt格式的配置文档;目前使用的自动配置displayname方式是处理国际化文档,用户可以提供多个名字给APP。
2.archive project & export ipa file
a.这一部分比较重要,也是比较浪费时间的一部分(由于英文不够好,在看官方文档时略痛苦)
这一部分主要使用了两个xcodebuild命令。
第一个是处理为xxx.archive文件:xcodebuild archive -workspace source.xcworkspace -scheme source -configuration Release -archivePath ~/Desktop/source -allowProvisioningUpdates
第二个是导出为ipa文件指令: xcodebuild -exportArchive -archivePath /Users/shanwz/Desktop/source.xcarchive -exportPath ~/Desktop -exportOptionsPlist /Users/shanwz/Desktop/exportOptions.plist -allowProvisioningUpdates
需要注意的是命令中如果需要自动签名最后面的-allowProvisioningUpdates是必须的,两条命令都需要添加。如果不需要这参数可以删除。如果你不清楚上面参数中的-scheme需要的内容,你可以在你项目根目录下执行 xcodebuild list指令查看。其他参数含义比较明显就不多说了,有问题留言。
第二条指令原可以使用xcrun一类的order但是苹果在xcode8.x的时候就不推荐了,并且在之后的xcode中也没有PackageApplication文件,如果还是想用可以直接从网络中下载并安装。
第二条指令中还一个注意点就是-exportOptionsPlist的参数,它需要我们描述我们需要导出何种类型的ipa文件,或者说是以什么方式导出。直接贴图说明:
如果是自动签名,需要再signingstyle中添加automatic字段,否则就是MANUAL(这就需要你在自己项目中手动下载配置文件并且选择好)。几个必须的字段在图片中已经描述,如果想直到不同打包方式会需要什么样子的字段,那么我们可以手动打包,然后会在导出的文件夹内包含这个文件名字是:exportOptions.plist。(前期不知道这么搞,去看他官方文档,运行man xcodebuild指令查看,简直崩溃。)
搞清楚这些指令,python就比较简单了。直接贴图。
xcodebuild指令直接使用str拼接,直观,方便阅读。
3.发布ipa文件到fir.im
这一步比较简单就不过多解释了,直接贴个图吧。
由于fir上传时调用upload.communicate()方法返回值error机制不是很清楚,这里直接使用是否含有“publish succeed”字段来判定是否成功,有清楚的留言下。谢谢了。这里上传会重试3次,fir_cli插件在我这里第一次上传多会出现stream closed错误,不过第二次就没问题了。FIR_TIMEOUT=xxx可以设置fir上传时的超时时间。
4.发送邮件给指定邮箱
这一部分的python也是很简单的东西,就不多说了,直接上图。
最后: cd到源码根目录,执行chmod 777 autoDo.py ; 然后就可以使用./autoDo.py执行脚本命令了。