首页 / Mac 构建农场

Mac 构建农场

Mac 构建农场是一组专门用来构建和测试 App 的 Mac。无论你用 Xcode、Unity、Flutter 还是 React Native,Apple 平台的构建都离不开 macOS,而一组独享的云端 Mac 能让构建既快又稳定。

好的 Mac 构建农场由什么组成

加机器是最简单的部分。能长期保持高速的构建农场,都做好了四件事:标签、缓存、签名和并行测试。

Mac mini M6

最受欢迎

24GB · 512GB SSD

更大内存与存储,适合大型项目和缓存。

低至 $179/月

  • 月付$209/月
  • 6 个月$199/月
  • 12 个月$179/月
订购 Mac mini M6

Mac mini M5 Pro

24GB · 512GB SSD

Pro 级 CPU 与 GPU,适合重度构建和小型模型。

低至 $229/月

  • 6 个月$249/月
  • 12 个月$229/月
订购 Mac mini M5 Pro

Mac Studio M5 Max

36GB · 512GB SSD

高 GPU 吞吐量,适合机器学习、渲染和并行 CI。

低至 $679/月

  • 6 个月$699/月
  • 12 个月$679/月
订购 Mac Studio M5 Max

价格为每台机器起始配置的美元月费。需要更多内存、存储或多台机器?联系我们。

1. 运行器标签

标签让任务声明自己需要什么样的机器。数量要少,含义要清楚:

  • macos、arm64:所有节点。
  • xcode-x.y:每个已安装的 Xcode 版本一个标签,方便逐台升级。
  • large:M5 Pro 或 Mac Studio 节点,用于大型归档和 Unity 构建。
  • signing:可以接触发布证书的节点。
jobs:
  archive:
    runs-on: [self-hosted, macos, arm64, xcode-x.y, signing]

在 GitHub Actions、GitLab Runner(tags)和 Jenkins(agent labels)中做法相同。

2. 缓存策略

独享机器的磁盘在任务之间是保留的,这是相对于每次全新启动的托管运行器最大的速度优势。要有意识地利用它:

  • Xcode:用 -derivedDataPath 按项目、按运行器保留 DerivedData;把 Swift Package Manager 的检出放在固定目录。
  • CocoaPods:保持 pods 缓存热启动,只在 lockfile 变化时运行 pod install。
  • Unity:在构建之间保留项目的 Library 文件夹,重新导入资源往往是最慢的一步。
  • Flutter:保留 pub 缓存,并在每个节点上固定 Flutter SDK 版本。
  • React Native:保留 node_modules 或包管理器缓存,以及 iOS 端的 Pods。

按计划清理,而不是每个任务都清。用一个夜间脚本删除超过一周的缓存,就能让磁盘保持健康。缓存较大时,选择 512GB 的节点,例如 24GB 的 Mac mini M6。

3. 每个节点独立的签名钥匙串

在每个节点上,把发布签名与登录钥匙串分开:

  1. 创建专用钥匙串,例如 security create-keychain -p "$PASS" build.keychain。
  2. 在任务中导入证书、解锁钥匙串,并把它加入搜索列表。
  3. 任务结束时删除或锁定该钥匙串。

fastlane match 等工具可以自动完成这些步骤。只有带 signing 标签的节点才应持有发布凭据。签名细节可参考 Apple 的 分发文档。

4. 并行测试目标

两个层面的并行都要用上:

  • 节点内:-parallel-testing-enabled YES 会在多个模拟器克隆上并行跑测试;传入多个 -destination 参数,可在一次运行中测试多种设备。
  • 节点间:用测试计划或 -only-testing 把测试集拆成分片,每个节点跑一片。

内存越大,每个节点能开的模拟器克隆越多,这也是构建农场通常偏好 24GB 及以上机器的原因。

规模参考:粗略的起点

团队建议配置理由
1–3 名移动开发者1 台 Mac mini M6 24GB一台机器跑两个运行器
4–8 名开发者2–3 台 Mac mini M6 24GB构建与测试并行
9–20 名开发者4–6 台 Mac mini,其中 1–2 台 M5 Pro大型归档交给 Pro 级节点
游戏或多 App 工作室若干 Mac mini 加 1 台 Mac Studio M5 MaxUnity 构建与大量资源导入

每个代码库都不一样。先观察两周的排队时间,再在任务等待的地方加节点。配置细节见 iOS 构建服务器 和 Mac 集群托管。

常见问题

哪些 CI 系统可以配合 Mac 构建农场使用?

任何支持在 macOS 上运行自托管代理的系统都可以,包括 GitHub Actions、GitLab、Jenkins 等。运行器由你自行安装和注册。

Flutter 和 React Native 应用也需要 Mac 构建农场吗?

它们的 iOS 构建需要。构建、签名并上传 iOS 应用都必须使用 macOS 和 Xcode。

我的构建农场需要几台机器?

把规模参考表当作粗略起点,然后观察排队时间,在任务等待的地方加节点。

可以为整个构建农场报价吗?

可以。请在联系页面告诉我们需要多少台机器以及哪些方案。