iOS开发人员必须多久构建一次应用才能下载 iTunes连接 App Store Connect ? 在应用程序的活动Beta测试阶段,您需要快速修复错误并交付更新的程序集以进行测试。 对于每个新版本,还必须下载证书,Provision配置文件,单击许多不同的复选标记和按钮。
幸运的是,有一个很棒的工具,例如fastlane ,可以帮助我们自动化移动开发人员的手动操作。
在本文中,我将告诉您什么是fastlane,以及如何在iOS项目中快速开始使用它。
引言
这是什么
Fastlane是用于自动组装和布局移动iOS和Android应用程序的工具,它还包括生成屏幕截图 ,运行Unit / UI测试 ,将消息发送到Slack ,连接到Crashlytics以及许多其他使生活变得更轻松的有用事情。
什么是利润?
初始配置用于自动计算应用程序的基本命令(例如,用于在App Store或TestFlight上发布)的初始配置将花费不超过两个小时,但是,这将在将来节省大量时间,因为 整个过程将在命令行中一次调用中启动。
注意:由于没有免费帐户无法访问App Store Connect,因此需要Apple Developer订阅才能完成所有步骤。
安装方式
自己安装fastlane
首先,请安装/升级到最新版本的Xcode Command Tools:
$ xcode-select --install
安装gem fastlane:
$ sudo gem install fastlane -NV
添加到项目
在项目的根目录中,运行:
$ sudo fastlane init
Fastlane将根据需要向我们提供预装脚本的选项:

我们将选择选项4,因为 我们将针对情况指定所有必要的命令:

做完了! fastlane文件夹和gemfile已成功安装在我们的项目中。
在我们继续之前
如果语言环境 外壳配置文件不是UTF-8 ,则在构建和加载构建时会出现问题。 我们进入您的外壳配置文件( 〜/ .bashrc , 〜/ .bash_profile , 〜/ .profile或〜/ .zshrc )的文件,并添加以下几行:
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
现在,您准备好编写立即执行的步骤以自动化程序集。
如何运作
首先,找出fastlane的作用:其主要命令以及我们如何描述需要完成的工作。
命令(动作)
Fastlane附带了许多有用的命令,这些命令使开发人员的工作更加轻松:
- cert :自动下载并安装必要的证书(分发,开发)以对收集的应用程序进行签名;
- crement_build_number:将内部版本号增加1,或更改为build_number参数中指定的值
- 叹息 :自动下载并安装所有必要的配置文件;
- 快照 :运行UI测试并获取屏幕快照,以便在App Store中提交审阅时使用;
- 健身房 :收集档案,并在此处收集您申请的最终ipa;
- 扫描 :一切都很简单-启动测试目标;
- 交付 :将ipa,屏幕截图,元数据直接发送到App Store;
- 试验 :在TestFlight中将新鲜的ipa上传到beta测试。 您也可以使用此命令管理测试人员。
- 还有很多
快速档案
fastlane文件夹包含Fastfile和Appfile 。 在Appfile中,我们将规定组装和发布所需的值:捆绑ID,App ID,团队ID等。 在Fastfile中,我们将描述我们的脚本。 初始安装后,它看起来像这样:
default_platform(:ios) platform :ios do desc "Description of what the lane does" lane :custom_lane do # add actions here: https://docs.fastlane.tools/actions end end
- default_platform(:ios) -设置默认平台,以便不从命令行指定它。
- 平台:ios do ...结束 -这里介绍了iOS平台的“通道”。
- desc“车道功能说明” -“车道”的简短说明。 可以使用
$ fastlane lanes
查看带有说明的所有“通道”的列表。 - 车道:custom_lane做...结束 :车道(路径,带)更简单地是一种方法。 它具有名称,参数和主体。 在主体中,我们将调用我们需要构建,布局,运行测试等的命令。通过调用
$ fastlane [lane_name] [parameters]
从命令行调用泳道。 正是通过其中一条车道的调用,自动步骤才开始。
自动上传到TestFlight
首先,为车道设置一个友好的名称。 将custom_lane重命名为testflight_lane 。 现在很明显,执行此脚本的结果将是在TestFlight中加载的新程序集。
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do
配置应用文件
为了不每次运行脚本时都输入应用程序包和Apple ID,请将它们写在Appfile中 :
app_identifier "ru.ee.shishko.TheHatGame" apple_id "ee.shishko@gmail.com"
证书和配置文件
添加cert和sigh命令以分别安装证书和配置文件:
( 注意 :如果您的应用程序不在App Store Connect中,则需要添加带有app_name参数的Produce命令)
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do # App Store Connect: # produce ( # app_name: "MyAppName" # ) cert sigh end end
使用命令$ fastlane testflight_lane
运行我们的脚本
启动Fastlane时,将要求我们输入该帐户的密码,然后输入该密码。 它仅需要一次-Fastlane会记住它,并且您无需在下次启动时输入任何内容。
当fastlane成功完成脚本时,输出如下所示:

现在,证书和配置文件已下载并安装。 仍然需要在总捐款中列出期望的目标:

构建应用
添加increment_build_number命令以增加内部版本号。 如果您的主.xcodeproj文件不在根文件夹中,请在xcodeproj参数中指定其路径:
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number # .xcodeproj , : # # increment_build_number( # xcodeproj: "./path/to/MyApp.xcodeproj" # ) end end
为了增加内部版本号,请转到“ 内部设置/版本控制”,然后将“ Apple通用和当前项目版本”中的“ 版本控制系统”设置为1 :

添加Gym命令,该命令收集我们应用程序的ipa文件:

在参数中,您可以指定将ipa( output_directory ),ipa名称( output_name ),scheme( scheme )放在何处,是否执行Clean( clean )等。 我们不会在参数中指定任何内容-fastlane会默认设置参数,收集并签名ipa,但是再次:如果需要和必要,可以详细指定所有内容:
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym # : # # gym( # workspace: "TheHatGame.xcworkspace", # scheme: "TheHatGame", # configuration: "Release", # clean: true, # output_directory: "./build", # output_name: "TheHatGame.ipa", # codesigning_identity: "iPhone Distribution: Evgeny Shishko" # ) end end
上载到TestFlight
要将ipa加载到TestFlight中,我们将使用Pilot :

使用Pilot,您可以:
- 下载并分发程序集
- 添加和删除Beta测试人员;
- 接收有关测试人员及其使用的设备的信息;
- 将测试人员信息导出到.csv,以便将其导入到另一个项目中。
我们将使用其主要功能:将程序集发送到Apple Store Connect 。
添加test_light uploadl以使用skip_submission参数(我们仅将其用于上传ipa文件)和skip_waiting_for_build_processing (我们不等待处理完成)来调用upload_to_testflight :
default_platform(:ios) platform :ios do desc "Builds, achieves and uploads ipa to TestFlight" lane :testflight_lane do cert sigh increment_build_number gym upload_to_testflight( skip_submission: true, skip_waiting_for_build_processing: true ) end end
运行最终脚本
我们保存更改并从控制台运行:
$ fastlane testflight_lane
在发送到testflight的阶段,您将需要在控制台中输入应用程序特定的密码(在Application Loader中进行授权是必需的)。 您可以通过单击“生成密码”来生成它,从而在您的Apple ID帐户中找到它:

输入密码后,新程序集将成功加载到TestFlight中,fastlane将在此处结束:

可以在App Store Connect中查看新版本的状态:

结论
仅此而已! 我想提请注意以下事实:在最一般的情况下,本文尝试了Fastlane的功能。 在这方面,我正在附上一份调查报告:Khabrovites,您是否对有关快速通道中提到的和其他有用命令的详细用法以及设置脚本的高级功能感兴趣?
可以在此处找到具有所示快速通道设置的应用程序。