Xcode Cloud Notes

Xcode Cloud 是什么?

Xcode Cloud 是一个搭建在苹果的开发工具链之上的 CI/CD 系统,和苹果的 Xcode、TestFlight 以及 App Store Connect 整个开发工具和生态进行打通。Xcode Cloud 使用 Git 作为项目的代码管理工具,通过 CI/CD,帮助开发者打造更高质量、更稳定的 app。从 Xcode 13 版本开始支持,目前在 beta 阶段,免费限量内测申请,2022 年对所有人开放,具体价格待公布。

Xcode Cloud 能做什么?

  1. 自动构建和运行测试
  2. 自动在模拟器里运行测试程序
  3. 接收 Xcode Cloud 返回的构建结果通知,提前发现问题
  4. 通过 TestFlight 分发新版本给测试用户
  5. 创建供苹果审核的新版本
  6. 使用 Xcode 和苹果的云基础设施协同开发

CI / Automated Building and Testing

通常的开发流程是这样的,编码、build 整个工程,在模拟器或者测试机上验证修改。也可能会包括运行一下基于 XCTest 的单元测试,甚至集成测试、性能测试以及 UI 交互测试。

Image

有了 Xcode Cloud ,开发者可以花费更少的时间,在多个模拟设备上构建、运行和测试自己的项目

Image

在跑完这个流程之后,Xcode Cloud 会已邮件的方式通知开发者,帮助开发者提前发现问题。

CD

当 Xcode Cloud 构建并验证完一个代码改动(CI)之后,它可以自动第提交一个 beta 版本到 TestFlight,或者直接提交一个 release 版本到 App Store 供审核,这个过程我们称之为 CD.

这一步对开发者来说方便了很多,凡是有过打包上传到 App Store 的朋友可能都遇到过类似的困扰,打包完上传过程非常漫长,有时候尝试多次,甚至科学上网才能传的上去。有了 Xcode Cloud 之后,一方面这个过程直接在苹果的的 server 上去做,应该能快很多,另一方面无人值守,节省了了人力成本。

Image

使用 Xcode Cloud 需要满足哪些条件?

  1. 开发者账号要求

    1. 必须加入了苹果开发者计划
    2. Xcode 里登录上开发者 Apple ID
    3. App Store Connect 里有一个 app record. 创建 app record 需要有 Manager/Admin/Account Holder 的权限
  2. 工程设置

    1. 必须使用 Xcode project 或者 workspace
    2. 必须使用 shared schemes
    3. Scheme 里的 build 选项里勾选上 archive 选项
    4. 必须使用 Xcode 10 以后的新构建系统
    5. 依赖和第三方库必须对 Xcode Cloud 可用,支持 CocoaPodsCarthage (see more)
    6. 必须启用了自动签名
  3. 代码管理要求
    Xcode Cloud 支持以下的 SCM 提供商:

    1. Bitbucket Cloud and Bitbucket Server.
    2. GitHub and GitHub Enterprise.
    3. GitLab and self-managed GitLab instances.

Ref: