![图片:https://cms-assets.tutsplus.com/uploads/users/48/posts/30706/image/fastlane_logo.png](https://i-blog.csdnimg.cn/blog_migrate/61da6c4b94419c801e72a6f3f6023d83.png)
介绍
iOS开发人员很幸运能够享受并使用Apple提供的强大的开发平台(主要是Xcode)。 这有助于激发当今消费者在App Store上喜欢的引人入胜且功能强大的应用程序。 Xcode提供了一个直观的IDE,再加上Swift作为一种真正的现代编程语言的出现,使得在平台上进行编程变得异常有趣。
但是,虽然工作流的开发方面是紧密结合的,但是当涉及到处理代码签名和分发应用程序的琐事时,工作流就会崩溃。 对于平台而言,这一直是一个长期存在的问题,尽管它已逐步得到改善,但对于几乎所有开发人员而言,它仍然是一个瓶颈。 在许多方面,这扼杀了持续交付应用程序的需求-也就是说,每天在内部和外部手动构建和分发应用程序的需求容易出错且费力。
这就是fastlane的用处。fastlane工具套件使分发应用程序变得更加容易,使开发人员可以专注于其应用程序,并让该工具执行诸如管理配置文件和证书以及构建,打包和分发应用程序之类的任务。 Fastlane的工具链之一是客户端自动连续交付交钥匙解决方案,iOS开发人员可以利用该解决方案来确保他们的应用程序在不需人工干预的情况下被他人持续测试和验证。
![快车道徽标](https://i-blog.csdnimg.cn/blog_migrate/d8c791e826e4d2b9b8d27a20896e80bd.png)
fastlane由Felix Krause( @krausefx )开发,由一个开源工具套件组成,该工具套件通过命令行统一构建和部署iOS应用的自动化,并与Apple自己的API以及各种第三方库集成。 作为iOS开发人员中受狂热欢迎的工具链,并得到Google的支持,fastlane可以通过自动执行很多日常和每周任务来节省您很多时间。
在本教程中,我们将探索Fastlane的两个非常流行的功能:代码签名和打包/分发应用程序。
本教程的目标
本教程将向您介绍fastlane工具链,并向您展示如何利用该工具来自动化和优化iOS开发工作流程。 您将学习:
- Fastlane入门基础
- 对您的应用进行代码签名
- 包装和分发您的应用
假设知识
尽管不会在本教程中进行任何Swift编码,但本教程假定您具有Swift和iOS开发方面的知识。 您将使用命令提示符来构建和运行fastlane命令。
fastlane入门
fastlane工具链本质上是用Ruby编写的,并通过飞船 Ruby库连接到Apple Developer Center和iTunes Connect API,从而安全地对用户进行身份验证和授权。 它围绕创建称为Fastfile的配置文件进行操作,您可以将其视为配方文件,在其中您可以设置构建应用程序时要执行的操作。 这些动作被组织成“通道”。 例如,您将配置一个通道用于部署到App Store,另一个通道用于分发给TestFlight 。 泳道可以由以下各个动作组成:
- 建立你的项目
- 增加内部版本号
- 运行单元测试
- 发送您的.ipa到TestFlight
- 向您的团队发送Slack消息
您可以将通道视为对相关任务进行分组的函数。 您甚至可以从另一个方法调用泳道方法,以进一步解耦和重用您的泳道。
但是,在我们深入探讨Fastlane动作之前,您需要设置环境以使用Fastlane。
设置快速通道
确保您已安装最新版本的Xcode。 您还需要在系统上安装Xcode工具。 您可以通过在终端中输入以下内容来检查是否已安装Xcode Tools:
xcode-select -p
如果您获得了开发人员文件夹的完整路径,则可以开始使用了。 您应该看到类似以下的内容。
$ /Applications/Xcode.app/Contents/Developer
否则,通过在终端中键入以下命令,获取最新版本的Xcode命令行工具:
xcode-select --install
您应该得到类似于以下提示:
![gcc命令提示符](https://i-blog.csdnimg.cn/blog_migrate/55b5775fce199795fc586f1c5cab1cc8.png)
接下来,您将需要安装Homebrew 。 Homebrew是功能强大的软件包管理器,可让您安装数百个开源工具,其中包括快速通道。 要安装Homebrew,请在命令行中键入以下内容:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/
设置Homebrew后,您可以输入以下内容来安装fastlane:
brew cask install fastlane
请注意,如果您不想安装Homebrew,则可以通过输入以下命令通过ruby直接在终端中安装fastlane:
sudo gem install fastlane -NV
要确认fastlane已安装并准备就绪,请在终端中输入以下命令以初始化新的fastlane配置文件:
fastlane init
系统将提示您输入Apple ID,以便快速通道可以无缝连接到iTunes Connect。 填写其他所有提示问题,您将看到为您创建的新/ fastlane子目录。 您将主要关注/ fastlane / Fastfile配置文件,在其中将统筹所有fastlane动作。
快速浏览文件。 在接下来的几节中,您将使用它,从配置fastlane对应用程序进行代码签名开始。
对应用程序进行代码签名
Fastlane作为工具链最流行的功能之一是能够对您的应用程序进行自动编码,从而避免了必须处理证书和配置文件的麻烦。 这可能是很多工作,而且,当您更换机器或在新的团队成员中工作时,您必须重新做一遍。 Fastlane提供了三种可帮助您管理代码签名的操作: cert , sigh和match 。
cert虽然本身很有用,但通常会感叹一声,通过分别管理证书和配置文件来完成对应用程序进行代码签名的过程。 它不仅为您创建证书,还将在需要时自动生成新的私钥签名请求,以及将证书检索并安装到钥匙串中,确保每次运行cert时证书都有效。
sigh为开发,临时或App Store的证书创建相应的供应配置文件。 像cert一样,叹息可确保此配置文件保持最新,可检索并已安装到您的钥匙串中。 这两个一起构成了您应用程序的代码签名对。 但是在学习如何使用cert和sigh之前,我想介绍另外一项相关的操作: match 。
match结合了之前的两个动作,但是允许您通过自己的GitHub存储库安全,私密地在整个团队或多台计算机之间共享代码签名身份,创建所有必要的证书和配置文件,以便新成员可以通过简单的方式获得这些凭据调用fastlane命令match
。 有关匹配概念的更多信息,请查阅新的代码签名指南方法 。
要开始使用cert,请运行以下命令:
fastlane cert
同样,要感叹:
fastlane sigh
如果要查看cert或sigh提供的选项列表,可以使用以下命令:
fastlane action cert
...
fastlane action sigh
除了临时运行这些命令之外,您还可以在我之前提到的Fastfile配置文件中包括一个或两个操作作为自动化工作流的一部分:
lane :TestApp do
cert # or the alias get_certificates
sigh # or the alias get_provisioning_profile
end
然后,您可以通过发出以下命令来运行整个通道:
fastlane TestApp
通过两条简单的代码行,您现在可以从为您创建并自动维护证书和配置文件中受益。 接下来,您将深入了解fastlane如何帮助打包和分发您的应用程序。
打包和分发您的应用
您将学习接下来的两个动作约是健身房和交付 ,您将充分利用来构建,打包和您的应用程序分发到TestFlight或App Store。 Gym通过一个命令行来构建和打包您的应用程序,从而为您生成一个已签名的ipa文件。
通过将其作为Fastfile的一部分进行自动化,您可以通过持续的集成工作流程触发构建和打包,并每天或每小时将最新版本的应用程序交到用户手中。 要通过fastlane打包应用,只需运行:
fastlane gym
要指定特定的工作空间和方案,可以添加以下可选参数:
fastlane gym --workspace "YourApp.xcworkspace" --scheme "AppSchemeName"
就像Fastfile一样,fastlane提供了一个方便的配置文件,称为Gymfile ,您可以在其中存储所有特定于构建的命令,例如您的工作区,方案等,从而省去了每次键入内容或在Fastfile配置中公开它的麻烦。文件。 要创建新的Gymfile ,只需输入以下内容:
fastlane gym init
然后,您可以编辑该文件并输入项目所需的配置参数。
接下来, 交付接管了健身房不放过,通过分发您的.ipa文件,不用您去通过Xcode的。 作为健身房的对等方,delivery不仅可以交付.ipa二进制文件,还可以为您将屏幕快照和元数据上传到iTunes Connect,以及将应用程序提交到App Store。
该操作还可以从iTunes Connect下载现有的屏幕截图和元数据。 最简单的操作命令是调用:
fastlane deliver init
最终结果是一个元数据和屏幕快照文件夹以及配置文件Deliverfile ,该文件类似于Gymfile和Fastfile 。
![通过交付为您生成的元数据和屏幕快照子文件夹](https://i-blog.csdnimg.cn/blog_migrate/b730a1b662ecc9adbdce99edc6ad7d86.png)
然后,您可以修改那些子文件夹的内容以修改您的应用程序元数据。 要上传元数据,请运行:
fastlane deliver
要将您的应用提交审核,请附加以下参数:
fastlane deliver --ipa "App.ipa" --submit_for_review
要下载元数据或屏幕截图,请分别添加以下参数:
fastlane deliver download_metadata
...
fastlane deliver download_screenshots
您可以在/ screenshots子文件夹中修改屏幕截图 ,但是fastlane提供了另一项操作,可以自动为您生成屏幕截图。 尽管屏幕截图不在本文讨论范围之内,但是您可以在以后的快速通道文章中了解它。
与上一组操作一样,您可以在Fastfile中运行健身房并自己进行锻炼,也可以将其作为自动化工作流程的一部分包括在内 :
lane :TestApp do cert sigh gym(scheme: "AppSchemeName", workspace: "YourApp.xcworkspace") # alias for "build_ios_app" slack end
结论
通过实现自动化的连续交付,fastlane通过一键式交钥匙解决方案减轻了iOS开发人员的负担,该解决方案可用于构建,打包,分发,代码签名,屏幕截图生成等。 本教程只是介绍了快速通道的功能,在随后的文章中,我们将探索您可以实施的更多操作,以进一步实现自动化和优化工作流程。
从生成本地化的屏幕截图到与Jenkins CI,Git,Crashlytics,HockeyApp和Slack等著名工具的深度集成,fastlane与CocoaPods对于开发iOS工具包至关重要。 它拥有强大的第三方插件社区,并得到了Google的支持。
您还可以在Packt Publishing的《 使用fastlane移动进行连续交付》一书中了解有关持续交付和fastlane的所有知识。