fastlane作为持续集成工具,一次配置,之后使用十分方便,极大的提高工作效率,把开发者从繁琐无聊的工作中解放出来,强烈推荐大家使用
更新ruby
首先,安装或更新rvm
有可能需要更新ruby源(国外镜像服务器访问起来有些吃力):
1 | $ gem sources |
这里我们使用rvm工具管理ruby版本,其实Homebrew也可以安装ruby(brew install ruby),如果你还没有安装Homebrew,那么具体的安装方法请自行百度(捂脸)。
1 | #安装RVM工具 |
安装fastlane
1 | # 安装fastlane,加不加sudo取决于终端是否有权限执行该命令 |
安装完毕后到工程目录
1 | cd ~/projectpath |
执行fastlane初始化
1 | fastlane init |
配置fastlane(重要)
其实在Xcode自动管理证书之后,fastlane的配置已经极大的简化,当Xcode中勾选了自动管理证书,那么Fastfile中就可以直接调用gym进行打包,而不需要再调用sigh设置证书信息。
如果你的项目配置比较简单,那么只需要在Appfile中设置好基本信息:
1 | app_identifier("com.xxxx.xxxxx") |
然后在Fastfile中写上几行代码:
1 | lane :to_pgy do |
就能自动打一个ac-hoc签名的包并自动上传到firim,就是这么简单和任性。不过一般的工程配置都不会这么简单,比如需要先执行pod或者carthage的相关命令,有些项目需要关闭bitcode等等,不尽相同。
执行中报错
处理完配置文件,眼看就要大功告成,潇洒的在终端敲下 fastlane to_firim,按下回车键, 然后去泡杯咖啡,准备回来享受成功的喜悦。
没想到回来时却看到命令行鲜红的字体提示error
1 | xxx, Bundle only contains bitcode-marker, xxx |
内心瞬间崩溃,说好的一键打包呢?回过神来一看,这不是bitcode的错误吗,赶紧去工程配置看一下,bitcode已经是NO了啊,回想哪里不对,Xcode更新之后,我们应用不但需要在编译之前将build setting中bitcode选项设置为NO,还要在导出的时候把rebuild from bitcode选项取消勾选。那么这个操作如何反应到fastlane呢?为了解决这个问题,可是费了一番功夫,最后查到解决方案:
1 | 1、Enable Bitcode -> No |
1 | Could not find action, lane or variable 'firim' |
遇到这个错误不难解决,首先查看是否已经安装了firim的插件
1 | fastlane add_plugin firim |
然后查看项目里Gemfile是否引用了firim:
1 | gem "firim" |
坑点就说道这里,之后如果再遇到,再来补充。
后记
由于技术服务于业务,本文介绍的使用方式可能不能完全覆盖大家的需求,如果大家在使用过程中遇到问题,可以多留意报错信息,或者查阅文档、向社区求助。希望能够帮到大家 (^__^)
fastlane配置十分丰富,也给大家使用时带来一些幸福的烦恼,所以使用时还是要多看看文档,才能少走弯路,尽快配置成功。
本文只是简单介绍了fastlane的用处、用法,以及一些采坑经历。具体使用可以到下面传送门👇,能找到一些实例代码。
参考文档
iOS App自动化打包发布(Jenkins + Fastlane)
小团队的自动化发布-Fastlane带来的全自动化部署
Fastlane 官方文档