版本迭代过程中,经常需要打测试包,过程虽简单,但是不停地重复做同一件事会感觉极其无聊。
我们项目的内测包通过蒲公英来发布,所以在自动化之前,发测试包的流程是:archive、export、上传到蒲公英、查看蒲公英上的最新版信息(版本、build、下载地址)、拿着上一步的信息在各个相关钉钉群里吼一声。
基于这个“繁琐”的流程,我用python写了个脚本来解放双手。主要代码如下:
1、clean: os.system('xcodebuild clean -workspace xxx.xcworkspace -scheme xxx -configuration Release');
2、archive: os.system('xcodebuild archive -workspace xxx.xcworkspace -scheme xxx -archivePath %s' % XCARCHIVE_PATH);
3、export: os.system('xcodebuild -exportArchive -archivePath %s -exportPath %s -exportOptionsPlist %s' % (XCARCHIVE_PATH, EXPORT_PATH, plistFilePath)); 这里有个plist文件,一开始我也不知道要创建哪些选项,后面索性从xcode archive一个测试包,用最后生成的plist;
4、上传至蒲公英: 平台有开放接口 https://qiniu-storage.pgyer.com/apiv1/app/upload 按照套路来就行了;
5、钉钉群通知: 在创建群机器人,得到webhook,通过这个url就可以向群推送消息。
写到这里,算是完成了初期的预想。多想了一点,何不把发布环境也做成自动化?发布环境打包跟上面一样,把plist改一下就行了。
不一样的地方是包的上传:os.system('./altool --upload-app -f %s -u %s -p %s -t ios --output-format xml' % (ipa_path, UNAME, PASSWORD)), 后面两个参数分别是开发账号和密码。
使用过程中还是有个问题,因为脚本是为本人量身打造的,同组的小伙伴要使用就得先把环境撸一遍,里面的一些路径设置之类的也得根据他的实际情况改一下,如果后面需求变了,再共享给小伙伴使用,那又要各种设置一遍,甚是麻烦。所以,干脆把代码再撸一遍,用pyinstaller做成一个可执行文件,这样共享出去就方便了。
这里有个地方需要注意下,plist文件一起打包了,怎么在脚本中访问plist文件呢?
到这里,基本上是完成了,命令行执行的时候需要提供打包环境(测试、发布)和 本地xcode工程目录。下面贴出具体实现:
网友评论