指南
用独享 Mac mini 搭建 Mac CI 集群
团队如何把 5 到 20 台独享 Mac mini 作为 CI 机群运行:按项目分配 Runner,一个账户,一张发票,有工程师回复。
2026-09-20 更新
一台 Mac mini 足以从容应对一个团队的 iOS 构建。一旦您有三个应用、两个分支并行构建,再加上一条发布列车,就需要一个机群了,而机群的结构决定了 CI 是保持快速,还是变成人人抱怨的对象。
下面介绍团队如何在 MacDuty 运行 5 到 20 台独享 Mac。
从构建并发数出发,而不是人数
唯一重要的数字是:在最繁忙的那个小时里,必须同时运行多少个构建。不是开发者人数,也不是代码仓库数量,而是并发构建数。
适用于大多数 iOS 团队的大致规模:
| 情况 | 机器数 |
|---|---|
| 一个应用,一个团队,PR 构建 | 1 到 2 台 |
| 两三个应用,并行的 PR 构建和夜间构建 | 3 到 5 台 |
| 发布列车,在设备矩阵上运行 UI 测试 | 6 到 10 台 |
| 服务多个产品的外包公司或平台团队 | 10 到 20 台或更多 |
排队时间就是信号。如果高峰期构建等待超过几分钟,就增加一台机器。这比每个开发者等待所耗费的那一小时更便宜。
每台机器一个 Runner,还是多个?
每台 Mac mini 整机都归您使用:没有虚拟化层(hypervisor),没有争抢资源的邻居。因此有两种可行的模式。
每台机器一个 Runner
最干净。一次构建独占全部 CPU、GPU 和内存。适用于 Xcode 构建和 UI 测试,这类构建会把您给它的每个核心都用满。
每台机器两三个 Runner
适用于小型且受 I/O 限制的任务:单元测试、代码检查、打包。在 32 GB 的 M4 或 M6 上,两个并行的轻量任务可以从容运行。
两种方式混用很常见:重型机器专门用于发布构建,较轻的机器塞满快速任务。
按团队和项目划分机群
给机器打上标签,让流水线按标签分配任务。常用的划分方式:
按项目
ios-app、sdk、internal-tools。每个代码仓库指向自己的标签,因此一个产品的构建失败绝不会阻塞另一个产品。
按用途
pr 机器快速且始终保持预热,release 机器在每次签名构建前都会被抹掉。
按客户
外包公司为每个客户分配专属机器,配有各自的凭据和证书。没有任何共享,账户之间没有可泄露的东西。
这一切都在一个 MacDuty 账户下,月底一张发票。
保持机群健康
切换项目时重新安装,而不是从不重装
一台构建了一年的 Mac 会积累多个 Xcode 版本、模拟器和缓存。当您把一台机器轮换到新项目时,请联系支持进行全新的重新安装。由于这会抹掉 Mac,我们只在您同意后才执行。
固定工具链版本
同一机器池中的每台机器使用相同的 Xcode 版本,并有计划地升级。机器版本各自漂移的机群,会产生在一个 Runner 上通过、在另一个 Runner 上失败的构建。
关注队列,而不是 CPU
构建机器的 CPU 图表总是看起来很吓人,却很少能据此采取行动。队列等待时间才会告诉您何时该增加硬件。
留一台备用
有十台机器时,一台宕机应该只是小麻烦,而不是事故。
与编排式 Mac 云的比较
编排平台在虚拟化的 macOS 之上叠加一层 Kubernetes 式调度,而您要为这一层付费。如果您需要大规模地为每个任务启动临时虚拟机,它确实有用。
大多数机器少于二十台的团队并不需要。他们需要的是几台快速、独享、持续在线的 Mac,缓存保持预热,每月费用固定不变。这就是独享机群:整台物理机,固定价格,构建缓存留给下一个任务,而不是随虚拟机一起被丢弃。
还有一个区别会在发布前的凌晨 2 点显现:管理机架的人会回复您的邮件。
搭建机群
告诉我们您的规划:多少台机器,哪些型号,需要安装什么。应您的要求,我们会为机器配置您的 Xcode 版本、Runner 代理、密钥和证书,并在后续处理重新安装和机群变更,每一项都需经您同意。
今日有货
这些 Mac 现已在机架中。选一台,看看它包含什么,下单时再创建账户即可。
正在查看机架
专属于您的 Mac mini
选择配置。如果暂时缺货,请留下邮箱,上架当天我们会写信通知您。
按年:比按月付款至少便宜 19%
问题
- 我可以在一个 MacDuty 账户下运行多台 Mac mini 吗?
- 可以。一个账户可以容纳您需要的任意数量的机器,一张发票,开给您本人或您的每家公司。
- iOS CI 需要多少台 Mac mini?
- 按高峰期的并发构建数来确定规模,而不是按团队规模。单个应用需要 1 到 2 台,几个应用并行构建需要 3 到 5 台,发布列车或外包公司需要 6 到 20 台。
- 我可以在一台 Mac mini 上运行多个 CI Runner 吗?
- 可以。整台机器由您独享。繁重的 Xcode 构建每台机器一个 Runner;在 32 GB 的机器上,轻量且受 I/O 限制的任务可以运行两三个 Runner。
- 不同的团队或客户可以使用各自独立的机器吗?
- 可以。机器按项目或按客户打标签并相互隔离,各有自己的凭据,统一在一个账户和一张发票下。
- 独享 Mac 机群比编排式 Mac 云更便宜吗?
- 对于稳定的 CI 负载,是的:每台物理机按月固定计价,没有按小时计费,也无需为编排层付费。
下一步