Xcode Cloud 是什么

首先来看官方介绍:

Xcode Cloud is a continuous integration and delivery service built into Xcode and designed expressly for Apple developers. It accelerates the development and delivery of high-quality apps by bringing together cloud-based tools that help you build apps, run automated tests in parallel, deliver apps to testers, and view and manage user feedback.

Xcode Cloud 是苹果官方提供给苹果生态开发者的 CI / CD 服务,相比自建的 Jenkins / fastlane 服务来说,Xcode Cloud 具有以下几个明显优势

  1. 免维护:整套服务由苹果维护,无需自己租用和部署服务器,也无需后续麻烦的升级和维护。
  2. 高度集成:Xcode Cloud 作为官方服务,在最新的 Xcode 13 侧边栏中直接占据了一席之地,用户可以很方便的在 Xcode 中配置和执行 CI 操作,从而实现编译、打包、测试、上架一条龙。
  3. (伪)免费:说免费其实并不完全恰当,作为 Apple 平台的开发者,你每年的苹果税还是得交的。但除此之外,目前 Xcode Cloud 并不需要额外的付费。

与此同时,Xcode Cloud 目前也存在一些问题,具体表现在:

  1. 稳定性不足:Xcode Cloud 目前依然处于早期 Beta 阶段,时不时就会有一些 UI / UX 层级的修改,需要开发者自己摸着石头过河。
  2. 扩展性较差:Xcode 目前仅面向 iOS / macOS 平台的项目,无论是触发器还是执行后通知策略,相比 Jenkins 来说都有较大差距。

综上,如果你是一名专精于 Apple 平台的开发者,并且你想把自己从繁重的打包/上架工作中解脱出来,那么 Xcode Cloud 是值得一试,且体验顺滑的首选。

Xcode Cloud 可以做什么

以一名 Apple 平台的开发者为例,日常的主要工作主要有:

  1. 编写业务代码
  2. 编写单元测试代码
  3. 执行单元测试
  4. 打包
  5. 提交 TestFlight
  6. 提交 App Store

以上除了编写业务及测试代码之外,剩下的 Xcode Cloud 都能帮你一起搞定。

Xcode Cloud 的基本配置

Xcode Cloud 目前可以通过两种方式进行配置:

个人较为推荐使用网页配置,Xcode 受限于版本,可能会出现版本较低,无法保存 Xcode Cloud 配置的问题。
  • 使用 AppstoreConnect 网页配置
  • 通过 Xcode 侧边栏配置

以下我将以创建一个自动打包 – 提交到 TestFlight 的工作流为例,创建一个新的 Xcode Cloud 配置。

1. 新建配置

点击页面中的 「管理工作流程」,并点击右侧的 “+” 号,即可开启一个新的配置

2. 配置名称及仓库属性

为你的新工作流配置一个名称,并添加代码仓库的地址,指定项目名称

3. 配置启动条件

这里我选择「当 Release 分支有变化时」触发,在实际操作中,我会将开发完成的功能代码合并到 Release分支,这时 Xcode Cloud 将收到 webhook 回调,触发我配置好的 TestFlight 工作流,执行后续的打包、推送到 TestFlight 的操作。

4. 添加操作

接下来我会为这条工作流添加两个操作,分别是「构建」和「归档」,以使 Xcode Cloud 正确编译代码后,归档出可供 TestFlight 或 App Store 提交的 ipa 文件。

5. 添加后续操作

最终,我们添加一个发布到 TestFlight 的后续操作,以使 Xcode Cloud 能在完成归档后,自动提交到 TestFlight 审核和发布。

至此,一条完备的工作流就配置好了,点击页面右上方的「保存」即可生效。

每当我们向 Release分支推送代码时,Xcode Cloud 都会自动触发这条工作流,并自动提交到 TestFlight,分发给测试人员或外部的测试用户。

执行效果

我们可以在控制台查看每次构建触发的时间,过程,以及结果。