use-cases --list ci packaging desktop

跑 Xcode CI 的托管 Mac 每天到底在做什么

团队租用 Mac mini M4 主要为了三件事:跑 CI 构建、打包公证发布产物,以及按日或按月使用一台远程 macOS 桌面。下面逐一说明怎么接起来。

场景 01 · CI/CD

一个流水线真正能连上的构建节点

GitHub Actions、GitLab CI 和 Buildkite 用的都是同一套思路:注册一个自托管 runner,把 macOS 任务路由过去。你租用的 Mac mini M4 就是那个 runner——专属的 Apple Silicon,不会排队等别的租户,也不按分钟计费。

  1. SSH 进去安装 runner 代理从 CI 提供商拉取 runner 二进制文件,用仓库或组织 token 注册,打上类似 macos-arm64 的标签。
  2. 改一个标签就能路由任务把 runs-on 指向新标签。Xcode、模拟器和工具链在任务之间持久保留,热缓存让构建更短。
  3. 按周期扩容,不按人头一个按月节点就能撑住小团队的 PR 构建。发布冲刺前按周加一台,冲刺结束就下线。
阅读 CI 配置详细教程
场景 02 · 打包发布

在一台稳定机器上完成打包与公证

签名正是共享构建农场最容易出问题的地方:证书落在临时密钥串里,配置文件在任务之间消失,某次没排期的 macOS 小版本更新会在周五突然搞坏 archive 步骤。专属机器把这些不稳定因素都去掉了。

  1. 证书只导入一次把 Developer ID 和分发证书导入一个持久保留的密钥串,不用每次发布前重新走一遍配置流程。
  2. 固定系统与 Xcode 版本由你决定 macOS 和 Xcode 何时更新。公证 v1.4 的环境和公证 v1.5 的环境逐字节相同。
  3. 把整个发布流程脚本化把 archive、codesign 和 notarytool 串进一个 fastlane lane 或 shell 脚本,随时通过 SSH 触发。
在常见问题里查看打包相关内容
场景 03 · 远程桌面

按日租用的短期 macOS

有时候要解决的不是流水线,而是某个人需要几天的 macOS 环境。复现一个只在 Safari 上出现的 bug,在真实 macOS 上测试网站,跑一个 Mac 专属工具,或者不用跨境寄硬件就给外包人员一个工作环境。按日或按月租用的远程 macOS 桌面正好适配这种时间窗口。

  1. 按需要的窗口租用$19.3 的按日方案能覆盖一次排 bug;按周或按月周期能覆盖一次外包合作或一轮 QA 冲刺。
  2. 从任意系统通过 VNC 连接在 Linux 或 Windows 上打开完整的 macOS 桌面。Finder、Safari、Xcode 的图形界面和模拟器表现都跟桌上的机器一样。
  3. 用完就走租约到期,机器被清空并归还到资源池,没有什么需要转手、退还或计提折旧。
详细对比各种租期

买一台 Mac,还是按周期租一台?

这笔账不只看标价,更要看闲置时间、前期资金投入,以及机器坏了谁来修。

自购硬件

如果机器全年几乎满负荷运转,且团队里有人愿意负责它的维护,自购是合理的。

  • 第一次构建跑起来之前就要先付出数百美元,团队在外地的话还要加运费和关税。
  • 机器折旧不看它是否在构建——一个季度只用两次冲刺的 CI 主机仍然要付全款。
  • 电力、静态 IP、硬盘故障恢复和系统维护全都是你自己的事。

按周期租用

租用把同样的硬件变成一条可以随工作负载启停或调整规模的账目行。

  • 零资本投入:按日、周、月或季付费,只在需要时才计费。
  • 机房电力、带宽和硬件更换都已包含在价格里。
  • 项目中途需要更多硬盘?加一块额外 SSD +1TB,低至$11.7/月,不用重新采购硬件。
按日 $19.3/天
按周 $52.2/周
按月 $96.7/月
按季 $263/季

Mac Mini M4 · 16GB / 256GB,美元计价,专属硬件。

把计费周期和工作负载对上号

一天用来排 bug,一季用来跑常驻 runner。选好区域、选好周期,你的 Mac mini M4 几分钟内就能上线。