博客 · CI/CD
一个下午,在云端 Mac mini 上搭好 iOS CI/CD
把专属 Mac mini 作为 GitHub Actions 自托管运行器:构建更快、缓存常驻,也不再按分钟计费。

托管的 macOS 运行器很方便,但每个任务都从一台“冷”机器开始:Xcode 缓存、Swift 包和模拟器要反复下载。专属 Mac 会把这些都保留下来,因此当天的第二次构建通常比第一次快得多。
1. 准备 Mac
- 使用 Hatmac 账户中的信息通过 SSH 连接。
- 用
xcodes或 App Store 安装项目所需的 Xcode 版本,然后运行sudo xcodebuild -runFirstLaunch。 - 安装需要的命令行工具,例如
brew install fastlane swiftlint。
2. 注册运行器
在 GitHub 仓库中打开 Settings → Actions → Runners → New self-hosted runner,选择 macOS。GitHub 会显示该仓库专用的下载和 ./config.sh 命令。在 Mac 上运行它们,再把运行器安装为服务,重启后会自动启动:
./svc.sh install
./svc.sh start
3. 在工作流中使用
jobs:
build:
runs-on: [self-hosted, macOS]
steps:
- uses: actions/checkout@v4
- run: xcodebuild -scheme App -destination 'platform=iOS Simulator,name=iPhone 16' test
4. 日常维护
- 磁盘空间紧张时,定期清理
~/Library/Developer/Xcode/DerivedData。 - 把签名证书放在单独的钥匙串中,并在任务开始时解锁。
- 每台 Mac 运行一个运行器,构建时间更可预期;队列变长时再增加一台。
需要多个运行器?很多团队用 Mac mini 处理日常构建,再用 Mac Studio 跑大规模测试矩阵。


