部署IOS应用程序

本文档介绍如何配置FastLane以自动将IOS应用程序从Circleci部署到分发服务。

概要

利用Fastlane,Circleci可以自动将iOS应用程序部署到各种服务。这有助于删除将Beta或版本,IOS应用程序发布所需的手动步骤删除到预期的受众。

这些部署通道可以与测试通道组合使用,以便在成功构建和测试时自动部署该应用程序。

注意:使用这些部署示例要求为项目配置了代码签名。要了解如何设置代码签名,请参阅代码签名文档

最佳实践

使用git分支

建议仅在GIT存储库的特定分支上运行发布通道,例如专用释放/ beta分支。这将允许发布仅成功合并到指定的分支中,防止每次推送在开发阶段时发布。反过来,这也将减少工作完成时间,因为上传到外部服务可能需要一些时间,具体取决于我们的iOS应用程序二进制文件的大小。有关如何设置工作流程以实现此目的的信息,请查看分支级工作执行文档。

设置构建号码

上传到部署服务时,重要的是考虑iOS应用程序二进制文件的构建数量。通常这是一个.xcproject.并必须手动更新以确保它是独一无二的。如果在每次运行部署通道之前未更新构建号码,则可能会发现接收服务因构建号码冲突而拒绝二进制文件。

Fastlane提供了一个increment_build_number.行动这允许在车道执行期间修改构建号码。例如,如果要将构建号码绑定到特定的Circleci作业,请考虑使用$ circle_build_num.环境变量:

increment_build_number.build_number:“$ circle_build_num”

App Store Connect.

配置

要设置Fastlane以自动将IOS二进制文件上传到App Store Connect和/或Testflight,需要遵循几步,以允许Fastlane访问您的App Store Connect帐户。为易于使用和安全性,建议在App Store Connect中创建一个具有有限权限的新用户,只能用于您的CI作业。

  1. 抬头到用户和访问App Store Connect的部分
  2. 点击一下+添加新用户
  3. 填写表格,向用户提供唯一的电子邮件(例如ci@your188bet娱乐官网company.com.)并选择“App Manager”角色以及选择应用程序以提供访问权限。
  4. 检查您刚刚创建的用户的电子邮件收件箱,然后单击确认链接

注意:如果这是一个新的Apple ID,您可能需要登录苹果ID和App Store Connect / Developer Portal至少一次同意任何隐私策略,然后能够使用Fastlane的帐户

接下来,需要将App Store Connect用户的密码添加到Circleci项目中作为环境变量。在Circleci的项目设置中,导航到构建设置 - >环境变量并添加fastlane_password.变量,并将其值设置为App Store Connect帐户的密码。密码将在休息时存储加密。

最后,Fastlane需要来自我们的一些信息,以了解要使用哪个Apple ID以及我们所针对的应用标识符。这些可以设置在Fastlane / AppFile.如下:

#fastlane / appfile苹果ID“ci@your188bet娱乐官网company.com”app_identifier.“com.example.helloworld”

部署到App Store

下面的示例显示了构建,签名和上传二进制文件的基本通道到App Store Connect。该交付FastLane提供的操作是一个功能强大的工具,可自动化App Store提交过程。

提供还允许各种选项,例如自动上传元数据和屏幕截图(可以使用截图框架行动)。有关进一步配置,请参阅Fastlane交付文件

#fastlane / fastfiledefault_platform.:iO.平台:iO.之前setup_circle_ci.结束去世“上传到App Store的版本”车道:upload_release.#从项目中获取版本号并检查#在App Store连接上已提供的最新版本,然后#将构建号增加1.如果没有版本可用#为该版本,然后从1开始increment_build_number.build_number:app_store_build_number.initial_build_number:1版:get_version_number.xcodeproj:“hellocircle.xcodeproj”),生活:+1#设置分发代码签名并构建应用程序比赛类型:“应用商店”健身房方案:“hellocircle”#将二进制文件上传到App Store Connect交付submit_for_review:力:真正结束结束

部署到testflight.

testflight是Apple的Beta分发服务,它与App Store Connect相关联。Fastlane提供了飞行员行动进行管理睾丸分布简单。

下面的示例显示了Fastlane如何配置为自动构建,签名和上传IOS二进制文件。Pilot有很多自定义选项,以帮助将应用程序提供给睾丸,所以强烈建议签出试点文件了解更多信息。

#fastlane / fastfiledefault_platform.:iO.平台:iO.之前setup_circle_ci.结束去世“上传到testflight”车道:Upload_TestFlight.#从项目中获取版本号并检查#TeastFlight已经可用的最新版本#将构建号增加1.如果没有版本可用#为该版本,然后从1开始increment_build_number.build_number:letwest_testflight_build_number.initial_build_number:1版:get_version_number.xcodeproj:“helloWorld.xcodeproj”+1#设置分发代码签名并构建应用程序比赛类型:“应用商店”健身房方案:“你好,世界”#将二进制文件上传到testflight并自动发布#到配置的beta测试组飞行员分发_External:真正notify_external_testers:真正团体:[“HelloWorld Beta测试人员”],changelog:“这是Circleci的另一个新建筑!”结束结束

部署到Firebase.

Firebase是Google的分销服务。通过安装来简化到FirebaseFirebase App Distribution插件

Fastlane插件设置

要为项目设置插件,请在本地计算机上打开终端的项目目录并运行命令Fastlane Add_plugin firebase_app_distribution.。这将安装插件并将所需信息添加到Fastlane / pluginfile.和你的吉他美

注意:重要的是,这两个文件都被选中到Git Repo中,以便在作业期间通过Circleci安装此插件捆绑安装步。

生成CLI令牌

Firebase需要在身份验证期间使用令牌。要生成令牌,我们需要使用Firebase CLI和浏览器 - 因为Circleci是一个无头环境,我们需要在本地生成此令牌,而不是在运行时,然后将其添加到Circleci作为环境变量。

  1. 使用命令下载并在本地安装Firebase CLICurl -sl https://firebase.tools |抨击
  2. 使用命令触发登录Firebase登录:CI
  3. 通过浏览器窗口完成登录,然后复制终端输出中提供的令牌
  4. 转到Circleci中的项目设置,并创建一个名为的新环境变量firebase_token.令牌的价值。

Fastlane配置

Firebase插件需要最少的配置,以将IOS二进制文件上传到Firebase。主要参数是应用程序这将需要Firebase设置的应用程序ID。要找到这一点,请访问您的项目Firebase控制台然后去设置 - >一般。在“您的应用程序”下,您将看到属于项目的一部分的应用程序及其信息,包括应用程序ID(通常以格式为单位1:123456789012:iOS:ABCD1234ABCD1234567890)。

有关更多配置选项,请参阅Firebase Fastlane插件文档

#fastlane / fastfiledefault_platform.:iO.平台:iO.之前setup_circle_ci.结束去世“上传到Firebase”车道:Upload_Firebase.increment_build_number.build_number:“$ circle_build_num”比赛类型:“特别指定”健身房方案:“你好,世界”firebase_app_distribution.应用程序:“1:123456789012:iOS:ABCD1234ABCD1234567890”发行说明:“这是一个测试版!”结束结束

要使用Firebase Fastlane插件,必须通过通过该工作的一部分安装Firebase CLICurl -sl https://firebase.tools |抨击命令:

2.1职位特别指定苹果系统Xcode.11.3.1“环境fl_output_dir.输出脚步-查看-回声'Chruby Ruby-2.6'>>〜/ .bash_profile-捆绑安装-Curl -sl https://firebase.tools |抨击-bundle exec fastlane upload_firebase工作流程adhoc-build.职位-特别指定

注意:使用MacOS系统Ruby运行时,Firebase插件可能会导致错误。因此,它是可取的切换到不同的Ruby版本

部署到Visual Studio App Center

Visual Studio App Center Formally HockeyApp是来自Microsoft的分发服务。App Center通过安装来实现与Fastlane的集成App Center插件

Fastlane插件设置

要为项目设置插件,请在本地计算机上打开终端的项目目录并运行命令Fastlane Add_plugin AppCenter.。这将安装插件并将所需信息添加到Fastlane / pluginfile.和你的吉他美

注意:重要的是,这两个文件都被选中到Git Repo中,以便在作业期间通过Circleci安装此插件捆绑安装步。

App Center设置

首先,需要在VS App Center中创建该应用程序。

  1. 登录或注册,到Visual Studio App Center
  2. 在页面的右上角,单击“添加新建”,然后选择“添加新应用”
  3. 根据需要填写表格中所需的信息

完成此内容后,您需要生成API令牌以允许FastLane上传到App Center。

  1. 去吧API令牌在设置中的部分
  2. 单击“新API令牌”
  3. 输入令牌的描述,然后设置对“完全访问”的访问
  4. 生成令牌时,请务必将其复制到安全。
  5. 转到Circleci中的项目设置,并创建一个名为的新环境变量vs_api_token.具有API键的值。

Fastlane配置

下面是将Beta应用程序的车道的示例分发到Visual Studio App Center。将二进制文件上传到App Center所需的App Center帐户和具有“完全访问”的API令牌的用户名。

#fastlane / fastfiledefault_platform.:iO.平台:iO.之前setup_circle_ci.结束去世“上传到VS App Center”车道:upload_appcenter.#在这里我们正在使用Circleci作业编号#为构建号码increment_build_number.build_number:“$ circle_build_num”#设置adhoc代码签名并构建应用程序比赛类型:“特别指定”健身房方案:“你好,世界”#设置要上传的所需信息#应用程序二进制到VS App Centerappcenter_upload.api_token:env.[vs_api_token.],owner_name:“your_vs_appcenter_username”Owner_type:“用户”app_name:“你好,世界”结束结束

上传到Testfairy.

testfairy.是另一个受欢迎的企业应用程序分发和测试金宝博娱乐官网网址服务。Fastlane已建立支持TestFairy,使其能够快速且易于上传新版本。

testfairy偏好映像“></p>
      <ol>
       <li>在TestFairy仪表板上,导航到“首选项”页面。</li>
       <li>在“首选项”页面上,转到API键部分并复制API键。</li>
       <li>转到Circleci中的项目设置,并创建一个名为的新环境变量<code class=testfairy_api_key.具有API键的值。

Fastlane配置

要在FastLane中配置上载到TestFairy,请参阅以下示例:

#fastlane / fastfiledefault_platform.:iO.平台:iO.之前setup_circle_ci.结束去世“上传到testfairy”车道:Upload_testfairy.#在这里我们正在使用Circleci作业编号#为构建号码increment_build_number.build_number:“$ circle_build_num”#设置adhoc代码签名并构建应用程序比赛类型:“特别指定”健身房方案:“你好,世界”#设置要上传的所需信息#应用程序二进制到VS App Centertestfairy.API_KEY:env.[testfairy_api_key.],IPA:'path / to / ipafile.ipa'评论:env.[circle_build_url.]结束结束