首页 / 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 M5 Pro
24GB · 512GB SSD
Pro 级 CPU 与 GPU,适合重度构建和小型模型。
低至 $229/月
- 6 个月$249/月
- 12 个月$229/月
Mac Studio M5 Max
36GB · 512GB SSD
高 GPU 吞吐量,适合机器学习、渲染和并行 CI。
低至 $679/月
- 6 个月$699/月
- 12 个月$679/月
价格为每台机器起始配置的美元月费。需要更多内存、存储或多台机器?联系我们。
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. 每个节点独立的签名钥匙串
在每个节点上,把发布签名与登录钥匙串分开:
- 创建专用钥匙串,例如
security create-keychain -p "$PASS" build.keychain。 - 在任务中导入证书、解锁钥匙串,并把它加入搜索列表。
- 任务结束时删除或锁定该钥匙串。
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 Max | Unity 构建与大量资源导入 |
每个代码库都不一样。先观察两周的排队时间,再在任务等待的地方加节点。配置细节见 iOS 构建服务器 和 Mac 集群托管。
常见问题
哪些 CI 系统可以配合 Mac 构建农场使用?
任何支持在 macOS 上运行自托管代理的系统都可以,包括 GitHub Actions、GitLab、Jenkins 等。运行器由你自行安装和注册。
Flutter 和 React Native 应用也需要 Mac 构建农场吗?
它们的 iOS 构建需要。构建、签名并上传 iOS 应用都必须使用 macOS 和 Xcode。
我的构建农场需要几台机器?
把规模参考表当作粗略起点,然后观察排队时间,在任务等待的地方加节点。
可以为整个构建农场报价吗?
可以。请在联系页面告诉我们需要多少台机器以及哪些方案。