在咱们的平常开发工做中,避免不了会出现这样的场景:需求迭代开发完成以后,须要提供ipa包给QA同窗进行测试,通常会执行以下流程:1.执行Git Pull命令,拉最新的代码到本地 2.Pod Install安装最新的依赖库 3.在Xcode点击Archive编译并打包 4.选择输出一个iOS AdHoc模式的ipa文件 5.将ipa上传到Fir平台,生成二维码供测试同窗安装。ios
即使整个过程很顺利,也须要消耗开发同窗十到二十分钟的时间,但若是测试过程当中发现有问题,那么须要修复完毕后重复上面的这几个步骤。对于开发同窗来讲,这种重复且没有技术含量的机械工做简直是噩梦啊!git
那么什么样的工具能够帮助开发同窗解决这个问题呢?下面就介绍一下,目前市面上比较流行的自动化流程工具——Fastlane。Fastlane是用Ruby语言编写的一套自动化工具集和框架,每个工具实际都对应一个Ruby脚本,用来执行某一个特定的任务,而Fastlane核心框架则容许使用者经过相似配置文件的形式,将不一样的工具备机而灵活的结合在一块儿,从而造成一个个完整的自动化流程。到目前为止,Fastlane的工具集基本上涵盖了打包,签名,测试,部署,发布,库管理等等移动开发中涉及到的内容。同时该套件也支持与 Jenkins 、CocoaPods、xctools 等其余第三方工具的集成。github
初步了解以后,让咱们来看一下在如何项目里面应用fastlane。xcode
1.安装 Xcode command line tools:app
xcode-select —install
框架
2.安装fastlane工具
sudo gem install fastlane -NV
学习
3.进入项目路径下,初始化fastlane(这部分可根据实际项目须要配置)测试
fastlane init
ui
3.1.选择想使用fastlane作什么?
3.2.要求你输入Apple开发证书的App ID
3.3.是否管理APP的metadata
3.4.一路enter,直到初始化成功
3.5.初始化完成后的文件目录结构
1.文件介绍
Appfile
存储App信息,好比Apple ID,App Identifier,Team ID等信息。
Fastfile
自动化脚本配置文件,全部的任务都是在这个文件来调度的。
.env
全局的环境配置文件,文件里面咱们能够配置一些全局的信息,其余文件能够经过相似ENV['Apple_Id']
这种方式获取。
Deliverfile
上传AppStore包须要的配置文件,在这个文件里面能够设置App Store Connect的全部配置项。
metadata
存放APP元数据文件,包括关键词、版本更新日志、图标等。
screenshots
存放应用截图
2.经常使用的工具集(action)介绍
更多的action介绍能够参考fastlane文档中的介绍:docs.fastlane.tools/actions/
3.lane介绍
当咱们对Fastfile文件进行编写时,实际上就上经过在自定义的lane中添加合适的工具集action让fastlane按照咱们的意愿去顺序执行任务,固然fastlane默认就有一些系统级lane。
系统级lane:
有了上面的知识准备,咱们就以上传ipa包到Fir为例,来看看fastlane自动化打包具体的代码是怎么实现的。
首先看一下.env文件:
而后是Appfile:
最后就是咱们的FastFile:
当咱们完成上面的操做之后,咱们就能够在终端工具内经过fastlane upload_fir build:PublicDebug log:update_info
一行代码来实现打包并上传ipa包到Fir平台了,是否是很酷!
固然你也能够在咱们的项目目录中找到咱们的ipa包、dsym文件、fastlane的打包日志文件等等。
经过使用Fastlane实现自动化打包之后,开发同窗终于能够跟繁琐的机械工做说拜拜了~
除了本文介绍的功能,fastlane还有更多的妙用等着你们去挖掘,好比自定义action,Plugin,又好比持续集成,等等。在此本文也仅是起一个抛砖引玉的做用,但愿你们能共同探讨fastlane的更深层的用途。
最后声明,本文主要是为了用于阶段性学习记录,不会用于商业用途,如不慎存在侵权行为,请随时联系maojiadong921@gmail.com。
参考资料:
fastlane GitHub地址:github.com/fastlane/fa…
fastlane 文档说明地址:docs.fastlane.tools/