使用fastlane框架全自动化打包
前言
作为公司的iOS程序员,少不了在发布应用的时候各种等待。标准的手动发布流程是:编译->打包上传->填写应用更新数据->等待iTunesConnect编译->选择版本发布,整个过程大概需要30分钟左右。关键是这个过程就像windows装系统一样,虽然手工参与的不多,但是要一直守在电脑前等着。
程序员这么懒,一定会想办法让他自动化的。后来发现特别懒的Felix Krause写的Fastlane,Fastlane可以非常快速简单的搭建一个自动化发布服务,并且支持Android,iOS,MacOS。他可以实现一条命令从编译到选版发布全程不用干预。作为程序员的你只要一条命令,看集美剧,发布就完成了。
文章难度:★☆☆☆☆
系统要求
会编程
Xcode7+
Mac OS 10.11+
Fastlane组件
Fastlane是一套工具集,包括:
测试
scan => 自动运行测试工具,并且可以生成漂亮的HTML报告
证书,配置文件
cert => 自动创建管理iOS代码签名证书
sigh => 一声叹息啊,这么多年和Provisioning Profile战斗过无数次。总是有这样那样的问题导致配置文件过期或者失效。sigh是用来创建、更新、下载、修复Provisioning Profile的工具。
pem => 自动生成、更新推送配置文件
match => 一个新的证书和配置文件管理工具。我会另写一篇文章专门介绍这个工具。他会所有需要用到的证书传到git私有库上,任何需要配置的机器直接用match同步回来就不用管证书问题了,小团队福音啊!
截图
snapshot => 用Xcode7推出的UI test功能实现自动化截图
frameit => 可以把截的图片自动套上一层外边框
编译
shenzhen => 当年大名鼎鼎的自动编译工具,现在已经被弃用了
gym => Fastlane家族的自动化编译工具,和其他工具配合的非常默契
发布
produce => 如果你的产品还没在iTunes Connect(iTC)或者Apple Developer Center(ADC)建立,produce可以自动帮你完成这些工作
deliver => 自动上传截图,APP的元数据,二进制(ipa)文件到iTunes Connect
TestFlight管理
pilot => 管理TestFlight的测试用户,上传二进制文件
boarding => 建立一个添加测试用户界面,发给测试者,可自行添加邮件地址,并同步到iTC
辅助工具
spaceship => 为pilot,boarding和deliver等工具提供和 iTC 和 ADC 的交互API。spaceship本来是个独立的项目,后来被Fastlane收编进来
WatchBuild => 是一个独立的iTC监控工具,开启WatchBuild可以监控iTC上的文件状态,弹出MacOS自带的Notification
Android
supply => 自动上传到Google Play工具(如果有时间,我想把国内提供API的Android Store都写个插件自动上传,这个问题从10年我刚开始工作就觉得是个痛点)
screengrab => Android的自动截图工具
Fastlane中的概念
fastlane命令是一个流程控制的命令行工具(CLI),通过内部集成action和第三方的action完成一系列控制流程。运行fastlane命令行工具,会读取当前目录或者./fastlane目录下的Fastfile配置文件。更多详情:https://github.com/fastlane/fastlane
在Fastfile中:
action => Fastlane中的每一条命令都是一个扩展(action),上面提到的deliver,sigh之类的工具本身是CLI,但是在Fastlane中内嵌了对他们支持的action
lane => Fastlane中流程的合集,每