个性化阅读
专注于IT技术分析

Fastlane:巡航控制上的iOS自动化

本文概述

为iOS制作软件不只是编写Objective-C或Swift代码:还涉及了解UIKit的工作原理, 如何制作证书, 如何将应用发布到商店, 如何处理应用评论等。如果你发现此永恒的任务列表很累人, 则你的工作流程中确实需要一些自动化。

认识Fastlane, 该工具旨在为你在每次部署中节省几分钟甚至几小时。

Fastlane iOS实现交付自动化

Fastlane可帮助你自动将Beta版本的构建发送给Crashlytics, T​​estFlight, App Store等。

在本文中, 你将学习如何使用Fastlane自动执行iOS应用程序部署工作流。尽管我们将专注于此工具的iOS方面, 但Fastlane对于Android开发自动化也同样有效。

Fastlane入门

你可以根据自己最简单的选择选择几种安装方法。如果你已经安装并配置了Homebrew, 则安装Fastlane只需一个命令:

brew cask install fastlane

否则, Fastlane是基于Ruby的工具, gem始终是一个选择:

sudo gem install fastlane -NV

或者, 你始终可以从官方网站下载Fastlane。

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

部署自动化

安装Fastlane之后, 你现在可以编写Ruby脚本来逐步指示将部署移到所需位置所需的操作。这是使用操作, 工具和通道来完成的。

Fastlane工具, 操作和插件

Fastlane的工作核心是可以帮助你构建应用程序的工具。除了构建工具之外, 还有超过170种与Crashlytics, HockeyApp, TestFlight等服务的内置集成, 以及第三方制作和发布的更多插件, 因此你可以连接到其他服务等等。

从本质上讲, 你可以使用主要工具来执行各种任务:从获取自动屏幕截图到为框架取景并将其上传到商店, 它可以让你在构建应用程序之前自动运行所有测试。

操作是Fastlane拥有的核心工具, 插件是将第三方操作添加到Fastlane设置的一种方式。

通道

Fastlane使用的通道本质上是按顺序将操作或插件列表分组的, 因此你每次都能获得相同的结果。

运行通道时, 每个操作将导出一个环境变量, 随后的操作将自动获取这些变量以使过程继续进行。例如, 使用Gym动作将生成.ipa文件的路径, 而使用crashlytics将访问该.ipa位置, 以将该文件上传到其Beta服务分发系统。

在iOS上使用Fastlane

你从一个新的srcmini客户开始, 该客户想要一个非常简单的应用程序。设计已经完成, 可以在几周内对应用程序进行编码。下一步是开始对其进行编码, 在迭代过程中, 你将每两周向客户端发送一个beta应用程序, 以便他们可以看到你的进度并向你提供有关工作方式的反馈。

每次将Beta版本发送给客户端时, 你都将经过一个基本的清单:对应用程序进行签名, 将其上传到Beta服务, 向其添加新版本等。一次(每年):签署证书, 签署推送通知证书(如果需要)等等。

使用Fastlane, 所有这些现在都可以自动发生!

发送到Crashlytics Beta

例如, 你需要创建签名证书和配置文件, 以通过Crashlytics Beta共享你的应用程序。

Fastlane有一个名为match的操作, 一旦设置, 它就会执行以下操作:

  1. 创建分发签名证书。
  2. 创建一个临时配置文件(从#1附加到证书)。
  3. 将证书和配置文件从#1和#2保存到使用OpenSSL加密的Git存储库。

设置很简单。

首先, 运行fastlane match init以开始使用, 一旦设置了Git存储库, 只需调用fastlane match adhoc即可获得临时配置文件, 或者运行fastlane match appstore来获得App Store证书。

使用匹配的优点是, 你可以非常轻松地在计算机之间以及队友之间同步证书, 而不必再撤消证书以及你获得的速度。只需运行fastlane match应用商店, 即可在几秒钟内为你提供证书。

好了, 现在我们有了所需的证书和配置, 让我们发布Crashlytics。

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

  1. 创建分发签名证书。
  2. 创建一个临时配置文件(从#1附加到证书)。
  3. 将你的应用设置为使用#2中的配置文件。
  4. 存档你的应用。
  5. 打开Fabric, 然后按照以下步骤将应用发送给Beta测试人员。

Fastlane以此代替了琐事:

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

现在, 从终端运行fastlane beta将启动此脚本。

这将首先调用match, 一个处理创建和更新签名证书和配置文件的操作, 然后调用Gym, 一个使用之前和之后创建的相同证书和配置文件为你构建和打包应用程序的操作, 最后是将采用此签名的.ipa并将其上传到Crashlytics服务。

始终以相同的顺序调用所有这些步骤, 从而使生成的文件更可预测并减少错误。

MacBook-Pro:TestProject user$ fastlane beta

+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | Verifying required fastlane version | 0           |
| 2    | match                               | 57          |
| 3    | gym                                 | 592         |
| 4    | crashlytics                         | 195         |
+------+-------------------------------------+-------------+

[20:25:13]: fastlane.tools just saved you 14 minutes! ????

因此, 这是如何运行Fastlane将你的应用发送到Crashlytics的基本设置。我们还能自动化什么?

递增版本

例如, 我们可以设置为每次发送Beta时都希望增加构建版本号。

这可以通过一个称为increas_build_number的操作来实现, 该操作可以通过快速通道运行increment_build_number在终端上调用, 也可以在我们的测试版内联中使用:

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

恭喜你!你现在有了一个自动部署脚本, 该脚本也可以增加你的内部版本号。唯一需要注意的是, 一旦调用此通道, 就将在项目中更改文件(或者至少更改包含内部版本号的文件)。

如果你打算将更改提交到存储库, 则可以执行以下操作: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至TestFlight

好吧, 如果你走了这么远, 你可以在很短的时间内自动部署到Crashlytics, 从长远来看, 这将节省你无数的时间。最好的部分是, 如果你想将应用程序发送到TestFlight, 则需要做的就是将crashlytics更改为试用版。

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

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开发工作流程带来了惊人的价值。

希望你对Fastlane的介绍会有所帮助。你可以查阅官方文档以了解有关Fastlane的更多信息, 特别是如果你希望在当前和下一个iOS项目中实现自动化方面需要一些启发, 请参阅操作列表。

赞(0)
未经允许不得转载:srcmini » Fastlane:巡航控制上的iOS自动化

评论 抢沙发

评论前必须登录!