Fastlane是一组工具套件,旨在实现iOS应用发布流程的自动化,而且提供一个运行良好的持续部署流程,只须要运行一个简单的命令就能够触发这个流程。html
Fastlane是一个ruby脚本集合,其中囊括了向苹果商店提交新应用或更新已有应用所须要的最经常使用任务。ios
这个套件支持与Jenkins和CocoaPods,xctools等其余第三方工具的集成,而且可以定义多个通道(lanes)以支持不一样的部署目标,如应用商店,Beta测试和测试。git
fastlane典型的工做流程以下:github
lane :appstore do increment_build_number cocoapods xctool snapshot sigh deliver frameit sh "./customScript.sh" slack end
为了了解到更多关于这个项目的信息,InfoQ采访了Fastlane的发明者Felix Krause。ruby
持续交付/部署可以给iOS应用部署流程带来的最大收益是什么?在苹果的审核流程框架之下,这个工具可以多大程度地发挥做用?架构
最主要的收益就是可以在每次发布一个更新或全新应用的时候能够为你节省大量的时间。这是iOS开发者必须亲自完成的工做。app
在刚刚启动这个项目的时候,我并不肯定是否可以将iOS应用发布流程的各个方面彻底自动化,由于并无公开的API来实现它。使人高兴的是,它的确可以正常运转,并且我已经为多家公司制定了完整的持续部署解决方案。框架
能否为咱们简单描述一下使用fastlane的典型的工做流程?其中最相关的定制化选项有哪些?工具
我主要在以下场景下使用fastlane:单元测试
- 在每次提交时执行测试(这包括单元测试和集成测试)
- 只建立新的屏幕截图将其发送给客户
- 构建并分发Beta版本
- 构建并分发至应用商店(这包括更新配置文件,建立新的屏幕截图,上传应用至应用商店并提交应用)
在http://fastlane.tools网站上能够找到一些简单的例子。每一个开发者均可以很方便地添加或删除单个构建步骤,甚至能够实现本身的构建步骤。
你认为何类型的组织(例如独立开发者,小型开发组织,大型企业等)可以从fastlane的使用中受益最多?
独立开发者和处于初创阶段的小型开发组织:这类组织一般尚未运行任何自动化流程,很容易就能够开始使用fastlane。大型企业一般都已经有了某种类型的持续集成工具,他们须要适应fastlane的使用。
能否告诉咱们一些关于fastlane当前采用率的状况?如今有什么成功案例么?
我不想自卖自诩,不过我能够分享一些数字:
- 所有fastlane工具大约有20000次安装
- 在第一次发布后的三天内有10000人次访问了http://fastlane.tools
- 全部 工具和fastlane曾经入选Github当月Ruby趋势库
我已经从一些知名的公司获得反馈称,他们已经成功地将fastlane工具集成到了他们的发布流程中。Panic是我获得反馈最大的公司之一。
驱动你建立fastlane的过程是怎样的呢?
我最初只为一个客户实现了fastlane,当时的fastlane与他们的系统结合十分紧密。当我跟其余的开发者谈论此事时,他们很是兴奋而且询问他们是否也可使用这个工具。这就是为何我以一种十分灵活而且文档齐全的方式开发这个工具以便将其共享给其余iOS开发者。
最初我只开发了deliver。以后我意识到还缺乏一些工具,这就是为何我又建立了另外四个工具(snapshot,frameit,PEM和sigh)。由于这些程序都是独立运行的,我又想到以某种方式将它们链接起来。也就在这时我有了fastlane的想法。
Fastlane是一个开源的工具集,能够从Github获得它的克隆。从官方指南中能够了解到关于安装、配置和使用这些工具的更多细节信息。
查看英文原文:Fastlane Brings Continuous Deployment to iOS