fastlane实现自动化打包
如果公司里面没有专门的人员去打包,那么iOS端的打包测试需要我们开发人员自己实现打包了,传统的手动打包方式虽然简单但是有几点问题
1.大量重复性的劳动
2.项目比较大的话,打包时间比较长
总结下来就是:时间宝贵,我们为什么不把时间节省下来干点其他有意义的事情而浪费在这种重复性的工作里了
为了解决这个问题,我们团队采取了自动化打包的方式,我们采用的是一个很出名的开源工具fastlane
在开始搭建fastlane的环境时,遇到一些问题大概花了了1天的时间,但是每次打包能节省6-8分钟的时间,有时候我们一个版本测试打包可以达到10次以上,所以从长远来讲划算+值得
那么我们接下来进入正题开始说fastlane的搭建
xcode-select --install
表示你已经安装过了Xcode command line tools
-
sudo gem install fastlane -NV
出现以上的提示表示安装成功了喔,那我们可以接着进行下一步了
-
fastlane init
fastlane开始初始化
caution:如果项目需要pod管理开源库,请先创建pod,在执行初始化init(便于识别pod)
这里有四个选项,代表着不同的用法
- 自动截屏,对于公司有UI团队的,可以让UI团队的同事切出更美观的图案,如果公司没有这样的资源可以选择这个
- 自动打测试包并上传到TestFlight,对于不太了解TestFlght的童鞋可以自行查询
- 自动发布到App Store
- 手动设置,我们可以自定义组装任务
我这里选择的是4
- 接下来就是我们一系列的Enter建的操作了,几次骚操作以后,我们可以得到下面的结果喔
这是查看本地目录下我们可以发现多了一个fastlane的目录,里面有两个文件Appfile
Fastfile
-
Appfile
:保存AppleID和Bundle Identifier -
Fastfile
: 可以把fastlane里的多种actions组合成一个lane,实现自动化如何写lane请参考官方文档
第一个lane是ad-hoc包到本地
第二个lane是ad-hoc包然后上传到蒲公英(需要先安装蒲公英的插件)
- 一切就绪了,那就是见证奇迹的时候了,这时候我们切换到fastlane路径下,执行fastlane命令行,然后选择我们需要的lane
- 选择好需要执行的lane以后,接下来我们可以去"逗逗"测试小妹妹或者UI小妹妹了,就看你喜欢谁了(开开玩笑啦)
Congratulations,打包成功了,我们可以在自己写的输出目录里找到刚好archive出来的ipa包了
FAQ:
1. Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors
解决方案:在actions里面添加 "export_xcargs:-allowProvisioningUpdates"
原因:这是在google到其他人的解决方案,主要是因为Xcode9不允许访问钥匙串密码,所以我们需要手动开权限
2. 无法找到正确scheme
解决方案:Xcode中把项目的scheme拉倒最顶部