作者是各自领域的资深专家,并就他们有经验的主题撰写文章。. 我们所有的内容都经过了Toptal专家的同行审查和验证。.
Francisco Reynolds
Verified Expert in Engineering

Francisco是一位在iOS、Node方面拥有丰富经验的技术领导者。.js和web项目开发.

Read More

Expertise

PREVIOUSLY AT

Cookunity
Share

为iOS开发软件不仅仅是编写Objective-C或Swift代码:它还需要了解UIKit是如何工作的。, 如何制作证书, 在商店中发布您的应用程序, 如何处理应用程序检查以及更多. 如果你觉得累人,这无尽的待办事项清单, 工作流中的一些自动化正是您所需要的.

Conoce Fastlane,该工具可在每次部署中为您节省几分钟甚至几小时.

使用Fastlane iOS实现交付自动化

Fastlane可帮助你自动将beta版本上传至Crashlytics, TestFlight, App Store y mucho más.

En este artículo, 了解如何使用Fastlane实现iOS应用程序部署工作流程的自动化. 但我们将重点关注这个工具的iOS方面, Fastlane同样适用于Android开发自动化.

Primeros pasos con Fastlane

有几种安装方法可供选择,取决于您觉得哪种更简单. Si tienes Homebrew 安装和配置后,安装Fastlane只需要一个命令:

brew cask install fastlane

除此之外,Fastlane是一个基于Ruby的工具, gem es siempre una opción:

Sudo gem install fastlane -NV

或者,你可以随时下载Fastlane sitio web oficial.

安装Fastlane之后,运行它。 fastlane init 在项目目录中,并按照说明操作.

部署自动化

Con Fastlane instalado, 现在,您可以编写Ruby脚本,一步一步地指示您需要做什么,以便在您想要的地方实现它。. 这是通过使用操作、工具和路径来完成的.

Fastlane工具、操作和附加组件

Fastlane的核心是帮助构建应用程序的工具。. 除了编译工具之外, 有超过170个与Crashlytics等服务的集成, HockeyApp, TestFlight以及其他由第三方制作和发布的插件,让您可以连接到其他服务和更多.

En esencia, 获取可让你执行各种任务的主要工具—从自动屏幕截图到框架和加载到店面, 允许您在创建应用程序之前自动运行所有测试.

Acciones 是快速通道的主要工具, 和插件是向您的Fastlane配置添加第三方操作的一种方式.

Carriles

Fastlane使用的通道基本上是按顺序对操作或插件列表进行分组,这样每次都能得到相同的结果。.

Al ejecutar un carril, 每个操作将导出一个环境变量, 下面的操作将自动获取这些变量,以保持进程的运行。. 例如,操作的使用 gym 将生成文件路径 .ipa 生成和使用 crashlytics accederá a esta ubicación .ipa 将此文件上传到beta服务分发系统.

Usando Fastlane con iOS

你开始使用一个新的Toptal客户端,他想要一个非常简单的应用程序。. 设计已经完成,应用程序可以在几周内编码. 下一步是开始编码它。, 在迭代过程中, 每两周向客户发送一个测试版应用程序,这样他们就可以看到他们的进展,并给你关于事情如何工作的反馈。.

每次向客户端发送测试版, 您必须完成一个基本的检查清单:签署应用程序, 加载测试版服务, agregarle una nueva versión, etc. 在此基础上添加需要(每年)执行一次的操作:签署证书, 签署插入通知证书(如有需要)及更多.

有了Fastlane,所有这些都可以自动实现。!

Enviando a Crashlytics Beta

Por ejemplo, 您需要创建签名证书和供应配置文件,以便通过Crashlytics Beta共享您的应用程序.

快线有一个行动称为 match 配置后,它将执行以下操作:

  1. 创建分发签名证书.
  2. 创建一个特别的供应配置文件(附在n证书上). ° 1).
  3. 将# 1和# 2的证书和配置文件存储在使用OpenSSL加密的Git存储库中.

La configuración es simple.

Primero, ejecuta fastlane match init 设置好Git存储库之后,只需调用 fastlane match adhoc 获取临时或已执行的供应配置文件 fastlane match appstore 获取App Store证书.

Las ventajas de usar match 因为您可以轻松地在计算机和团队成员之间同步证书,而无需再撤销证书。, y la velocidad que obtienes. Simplemente ejecutando fastlane match appstore 给他一个证书在几秒钟.

Bueno, 现在我们有我们需要的证书和供应。, 让我们启动崩溃.

将应用程序提交到Fabric Crashlytics的典型工作流程包括以下步骤:

  1. 创建分发签名证书.
  2. 创建一个特别的供应配置文件(附在n证书上). ° 1).
  3. 从# 2开始配置应用程序以使用配置文件.
  4. Archiva tu aplicación.
  5. 打开Fabric并按照步骤将应用程序提交给beta测试人员.

Fastlane用这个代替了这个任务:

platform :ios do
  lane :beta do
    match(type: “adhoc”)
    gym
    crashlytics
  end
end

Ahora, ejecutando fastlane beta 从您的终端启动这个脚本.

首先,它将运行 match, 处理创建和更新签名证书和供应配置文件的操作, luego se llama gym, 为您创建和打包应用程序的操作, 使用之前创建的相同证书和配置文件, y finalmente, crashlytics, que tomará este .ipa 签署并将其加载到崩溃服务.

Todos estos pasos se llaman, siempre, en el mismo orden, 使生成的文件更加可预测并减少错误.

MacBook-Pro:TestProject user$ fastlane beta

+------+-------------------------------------+-------------+
快速通道摘要
+------+-------------------------------------+-------------+
步骤|行动|时间
+------+-------------------------------------+-------------+
| 1 |核查所需快车道版本| 0 |
第2场比赛第57场
3gym 592
第4次崩溃第195次
+------+-------------------------------------+-------------+

[20:25:13]: ¡fastlane.工具只是节省你14分钟! 🎉

这是运行Fastlane将应用程序发送到Crashlytics的基本设置。. 我们还能自动化什么?

增加编译版本

Podemos, por ejemplo, 确定每次我们发送一个beta版本, 我们希望增加构建版本的数量.

这可以通过使用一个调用操作来实现 increment_build_number 可从终端调用 快速运行increment_build_number 或者在我们的测试版中在线使用:

platform :ios do
  lane :beta do
    increment_build_number
    match(type: “adhoc”)
    gym
    crashlytics
  end
end

¡Felicitaciones! 现在您有了一个自动部署脚本,它也会增加您的编译版本号。. 唯一的警告是,, 一旦你叫这条车道, 您的项目中已修改的文件(或, al menos, 包含编译号的文件).

如果您计划无论如何对存储库进行更改, hay una acción para eso: commit_version_bump. 此操作确认使用新版本号的文件.

platform :ios do
  lane :beta do
    increment_build_number
    match(type: "adhoc")
    gym
    crashlytics
    commit_version_bump(
     xcodeproj:"myProject.xcodeproj",
   )
  end
end

这将发送带有确认消息的文件,如“Version Bump to 27”。.

Crashlytics para TestFlight

Bueno, si llegaste hasta aquí, 您可以在Crashlytics中快速实现自动化部署,从长远来看,这将为您节省无数个小时. 最棒的部分是,如果您想将应用程序发送到TestFlight, 你所要做的就是改变 crashlytics por pilot.

或者,您可以为此创建一个单独的车道:

platform :ios do
  lane :beta-testflight do
    increment_build_number
    match(type: "adhoc")
    gym
    pilot
    commit_version_bump(
     xcodeproj:"myProject.xcodeproj",
   )
  end
end

iOS简化自动化

Fastlane简单易用. 但是,它为您的工作流程带来了难以置信的价值 常规iOS开发 通过阻止他做一些微不足道的事情和他的时间,他最终会浪费.

我希望你会发现这个快速通道的介绍有用。. Puedes consultar la documentación oficial 了解更多关于Fastlane的信息,特别是Fastlane的列表 acciones 如果你正在为当前和未来的iOS项目寻找自动化方面的灵感.

聘请Toptal专家.
Hire Now
Francisco Reynolds

Francisco Reynolds

Verified Expert in Engineering

Buenos Aires, Argentina

2016年12月8日起成为会员

About the author

Francisco是一位在iOS、Node方面拥有丰富经验的技术领导者。.js和web项目开发.

Read More
作者是各自领域的资深专家,并就他们有经验的主题撰写文章。. 我们所有的内容都经过了Toptal专家的同行审查和验证。.

Expertise

PREVIOUSLY AT

Cookunity

世界一流文章,每周递送.

订阅意味着同意我们 privacy policy

世界一流文章,每周递送.

订阅意味着同意我们 privacy policy

Toptal Developers

Join the Toptal® community.