写点什么

Fastlane为iOS带来持续部署

2015 年 1 月 25 日

Fastlane 是一组工具套件,旨在实现 iOS 应用发布流程的自动化,并且提供一个运行良好的持续部署流程,只需要运行一个简单的命令就可以触发这个流程。

Fastlane 是一个 ruby 脚本集合,其中囊括了向苹果商店提交新应用或更新已有应用所需要的最常用任务。

  • deliver用于上传应用的二进制代码,应用截屏和原数据到应用商店
  • snapshot可以自动化 iOS 应用在每个设备上的本地化截屏过程
  • frameit用于在应用截屏外添加设备框架
  • PEM可以自动化地生成和更新应用推送通知描述文件
  • sigh可以生成并下载开发者的应用商店配置文件

这个套件支持与 Jenkins CocoaPods xctools 等其他第三方工具的集成,并且能够定义多个 _ 通道(lanes)_ 以支持不同的部署目标,如应用商店,Beta 测试和测试。

fastlane 典型的工作流程如下:

复制代码
lane :appstore do
increment_build_number
cocoapods
xctool
snapshot
sigh
deliver
frameit
sh "./customScript.sh"
slack
end

为了了解到更多关于这个项目的信息,InfoQ 采访了 Fastlane 的发明者 Felix Krause

持续交付 /部署能够给 iOS应用部署流程带来的最大收益是什么?在苹果的审核流程框架之下,这个工具能够多大程度地发挥作用?

最主要的收益就是能够在每次发布一个更新或全新应用的时候可以为你节省大量的时间。这是 iOS 开发者必须亲自完成的工作。

在刚刚启动这个项目的时候,我并不确定是否能够将 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

2015 年 1 月 25 日 09:0813310
用户头像

发布了 75 篇内容, 共 58.0 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
  • 了解移动 App 的持续交付生命周期

    今天我主要和你分享了移动App的持续交付生命周期的几个主要部分,包括代码及依赖管理、项目信息管理、静态代码检查、构建管理、发布管理、运营管理,以及热修复。

    2018 年 9 月 13 日

  • DevCloud on DevCloud 从 1 月 1 次到 1 天 10 次发布的实践分享

    演讲嘉宾张甲磊,华为首席运维架构师内容介绍华为云 DevCloud 在持续对外发布 DevOps 工具链过程中,自第一次上线耗时数周处理基础设施、安全、应用部署、服务性能验收等等过程,经过系统解耦、组织架构重整、研发理念重构、工具体系成熟、流程工具固化等多个过程,最终达成每天10次版本发布上线的持续交付效果。在此过程中,如何选择 DevOps 转型的切入点、如何把一个系统化的软件工程实践一步步实施落地、如何在交付特性和软件工程变革中求取平衡、如何完成人员意识转变和新人培养、如何培育优秀实践并逐步推广到全体交付团队等等,都有相关的经验和教训。 本次分享总结实践和走过的弯路,探讨互联网项目云化微服务化 DevOps 的实践。

    2018 年 12 月 18 日

  • OCaml 已经做好 iOS 开发准备

    近日,来自旧金山的程序员Edgar Aroutiounian为OCamliOS(Jeffrey A. Scofield不久前推出的一个面向iOS的OCamml交叉编译器)创建了一个程序包。InfoQ就此对他进行了采访。

  • Fastlane 实战(三):Fastlane 在 Android 平台的应用

    平心而论,Fastlane本身对Android平台的支持力度确实有限,15个核心工具中仅有2个是用于Android平台的。当然这也不能怪Fastlane重iOS,轻Android。和iOS不同,Android本身就没有那么多琐碎的事情,比如:证书管理,Provisioning文件管理,推送证书管理,签名等等,也不需要专门使用一个类似Testflight的测试平台来分发测试包,基本上一个APK打包出来,就能随便安装了。

  • Flutter 1.9 正式发布!支持 macOS Catalina,Flutter 网页版并入主库

    近日,在上海举办的“Google Developer Days“上,谷歌宣布Flutter 1.9版本、Dart 2.5版本正式发布。

  • iOS 测试与集成工具总结

    Giovanni Lodi是来自澳大利亚的一名iOS开发者,最近他总结了iOS平台上单元测试、验收测试的工具,分析了它们的优缺点,以及支持iOS App的持续集成平台。

  • 值得推荐的 13 个 Jenkins 替代方案

    Jenkins 是目前最常用的持续集成工具,拥有近 50% 的市场份额,它还是很多技术团队的第一个使用的自动化工具。但是随着自动化领域的持续发展,Jenkins 逐渐暴露出了一些问题,例如缺乏功能、维护问题、依赖关系和扩展问题等等。

  • 针对 DevOps 的 10 款最佳 Jenkins 插件

    目前Jenkins有超过1500个插件,用于支撑整个持续集成流程。由于插件数量众多,要选择一些合适的Jenkins插件会比较困难,本文介绍了一些比较有用的Jenkins插件,能够提升开发者效率。

  • 另辟蹊径创建移动应用

    在苹果和安卓应用商店中有成千上万的移动应用。本文我们将向读者介绍两种比较新奇的构建移动应用的方法。其中一个是使用Java构建原生的iOS应用,另外一个则是使用Xtend构建原生的安卓应用。

  • Fastlane 实战(一):移动开发自动化之道

    本人一直认为:在程序的世界里,一切重复性的,流程化的工作都可以交给自动化去完成。 在移动开发中也是如此:其实写代码只是我们开发过程中的一部分,除此之外我们还需要进行编译,打包,上传,部署,库管理,版本控制等等Coding之外的杂事,而正是这些乏味而重复的工作占用了我们宝贵的时间。 所以在“懒人”遍布的工程师世界中,总会有人想尽办法做出改变,于是这些“懒人”们乐此不疲的造出许多美妙的轮子,既方便了自己,又帮助了他人,让这个世界变得更加美好。 今天就给大家介绍其中一个轮子:Fastlane,这个Github上的明星项目截止到目前共获得1万多个Star,并且还有1500多个Fork。

  • StoryTeller 与可执行规范-采访 Jeremy D.Miller

    StoryTeller是一个开发“可执行规范”的.NET开源项目,项目的创建者Jeremy D.Miller在上周宣布了StoryTeller的预览版。InfoQ针对StoryTeller是什么、与Fit/FitNesse和 Cucumber这些工具有什么不同、以及项目未来的发展采访了Jeremy。

  • 工具链:什么样的工具链才能提升团队效率?

    假如一个团队每人发明几个小工具,后果将会是灾难性的:同一个团队无法配合写代码,一旦有人离职,可能某个项目永远无法跑起来。

    2019 年 5 月 11 日

  • 安装 VirtualBox 虚拟机

    2019 年 6 月 17 日

  • 构建 iOS 持续集成平台(一)——自动化构建和依赖管理

    持续集成理念经过10多年的发展,已经成为了业界的标准。而对于iOS领域来说,因为技术本身相对比较年轻和苹果与生俱来的封闭思想,在持续集成方面的发展相对滞后一些,但是,随着越来越多的iOS开发者的涌入,以及各个互联网巨头加大对iOS开发的投入,诞生了一大批非常好用的持续集成工具和服务,本文的目的就是介绍一下如何有效的利用这些类库,服务快速构建一个iOS开发环境下的持续集成平台。

  • 巨人的肩膀:那些你不能忽视的开源工具

    今天,我会给你介绍几个主要阶段的工具的使用技巧,希望可以手把手地帮助你快速搭建一套完整的持续交付平台。

    2019 年 12 月 19 日

  • iOS sonar 实践

    iOS sonar实践

    2020 年 7 月 5 日

  • 以持续集成工具实现 DevOps 之禅

    作为DevOps流程中的一个重要部分,持续集成(CI)的目标是对开发团队的代码进行集成,包括代码的构建、单元测试与集成测试的执行,以及生成执行结果的报表。CI使开发团队无需将时间浪费在处理代码冲突的问题上,因此很多人将其视为敏捷软件开发的奠基石。随着软件组织规模的扩大,基于云计算平台的CI工具逐渐取代了本地CI工具的地位。Vassili van der Mersch在一篇博客中对各种环境中的CI工具进行了详细的比较,并分析了CI工具的未来发展。

  • Fastlane 实战(五):高级用法

    经过前4篇文章的基础知识和不同的场景介绍后,相信大家已经对Fastlane有了一个较为完整的认识,同样,今天我还是结合几个实际的场景,来讲讲Fastlane的一些高级用法。

  • 大厂都在用哪些敏捷方法?(上)

    大厂做项目采用常见的“分而治之”的策略:大项目拆成小项目,大服务拆成小服务,大团队拆成小团队。

    2019 年 3 月 7 日

发现更多内容

公安舆情分析重点人员管控系统搭建解决方案

t13823115967

智慧公安 舆情分析

《迅雷链精品课》第十一课:区块链常用共识算法介绍

迅雷链

区块链

「生产事故」MongoDB复合索引引发的灾难

Kerwin

数据库 mongodb

当我们谈前端性能的时候,我们谈的是什么

vivo互联网技术

性能优化 前端 前端性能优化 页面

(G20200388020528)第一周练习

走走,停停……

话题讨论 | 作为地地道道的程序员半年内都没摸过代码是什么样的体验?

xcbeyond

话题讨论

区块链应用落地,区块链电子票据应用平台搭建

t13823115967

区块链+ 区块链应用 区块链落地开发

AR智能眼镜会成未来趋势

anyRTC开发者

人工智能 音视频 WebRTC RTC

ZEGO即构科技荣获36氪【WISE2020中国新经济之王最具影响力企业】

ZEGO即构

架构师训练营第一期 - 第十一周课后作业

卖猪肉的大叔

极客大学架构师训练营

即构科技肖传发:即刻构建在线教育的音视频互动场景

ZEGO即构

关于这 2 年来,做开源项目的一些感慨

贝克街的天才

Java 开源 开源项目 开源社区

5种分布式事务方案与阿里的 Seata 中间件

Bruce Duan

分布式事务 seata

为什么建议使用你 LocalDateTime ,而不是 Date?

Bruce Duan

LocalDateTime Date

从容应对11.11大促 京东智联云云硬盘做对了哪些事?

京东智联云开发者

云计算 高可用 云硬盘

药品安全追溯系统开发区块链技术

13828808769

安全 区块链+

警察营救安徽望江县17岁女生跳河自尽过程中,现场看热闹的旁观者们在做什么?

wbliu85

《前端算法系列》数组去重

徐小夕

Java 面试 算法 前端

2020 阿里云原生实战峰会即将开幕 云原生落地的正确姿势

阿里巴巴云原生

阿里巴巴 阿里云 开发者 云原生 实战

一个依赖搞定 Spring Boot 反爬虫,防止接口盗刷!

Bruce Duan

反爬虫组件 kk-anti-reptile

G20200388020528第二周作业

走走,停停……

TronChain波场链系统软件开发|TronChain波场链APP开发

开發I852946OIIO

系统开发

Redis 如何实现点赞、取消点赞

Bruce Duan

Redis实现点赞

读写分离这个坑,你应该踩过吧?

楼下小黑哥

MySQL 主从同步 读写分离

排查指南 | 当 mPaaS 小程序提示“应用更新错误(1001)”时

蚂蚁集团移动开发平台 mPaaS

小程序 问题排查 mPaaS

悟空活动中台-打造 Nodejs 版本的MyBatis

vivo互联网技术

Java 前端 mybatis nodejs

Spock单元测试框架实战指南四 - 异常测试

Java老k

Java 单元测试 spock

通过docker获取系统运行情况的实用命令

晓川

智慧警务系统开发解决方案,大数据可视化平台建设

WX13823153201

智慧警务系统开发

数据结构与算法系列之散列表(一)(GO)

书旅

go 数据结构 算法

DB-Engines 12月数据库排名: PostgreSQL拿下同期涨幅榜冠军,有望获得「2020年度数据库」荣誉?

华章IT

数据库 postgresql

Fastlane为iOS带来持续部署-InfoQ