场景一 — Xcode 构建.folder
scene://xcode-build

把出包这件事,从你的工位上挪走

典型的一天是这样的:Release 归档一跑,本地 Mac 风扇拉满,Xcode 卡住,连打字都开始掉帧。中型 Swift 项目一次 Archive 要 7 到 10 分钟,发版日跑上十几次,半个工作日就没了。

换成云端方案:在 OpsMac 租一台 M4 Home(16GB / 256GB,$19.4/天),SSH 登进去装好 fastlane,把 match 证书仓库同步过去,之后每次出包都在云端物理机上跑——你的本地机器只负责写代码和喝咖啡。

接入清单

  • 下单后凭据送达邮箱,从付款到 SSH 登录 < 10 分钟,发版当天早上租都来得及
  • 机器预装 Xcode,可按项目需要切换版本,命令行工具完整可用
  • fastlane match 同步证书与描述文件,签名环境一次配好,重装 macOS 后重跑一条命令即可恢复
  • gym 归档、pilot 上传 TestFlight,全流程无需图形界面;要看模拟器就开 VNC 屏幕共享
  • 发完版当天退租,只为用到的那几天付钱
场景二 — CI Runner 接入.folder
scene://ci-runner

让流水线跑在一台不排队的 macOS 上

托管 macOS runner 的两个老问题:一是共享虚拟机的性能抖动,同一条流水线今天 9 分钟、明天 14 分钟,缓存命中还随机失效;二是 macOS 虚拟化本身的合规疑虑——Apple 软件许可对 macOS 运行环境有明确约束,虚拟化方案始终有解释成本。

接一台独享物理机就把两件事同时解决:GitHub Actions、Jenkins、GitLab Runner 都按官方 self-hosted 方式注册,构建直接跑在 M4 芯片上,没有虚拟化层,没有共享抢占,耗时曲线平得像一条直线。

runner@mini-m4 — 注册 self-hosted runner
$ ./config.sh --url https://github.com/your-org/your-repo --token ****
√ 连接 GitHub 成功,标签:[self-hosted, macOS, ARM64]
$ ./svc.sh install && ./svc.sh start
✓ runner "mini-m4-tokyo-01" 已上线,常驻守护已启用

并发不够用时,不必换大机器:加租几台同款,用 Thunderbolt 5 并联加购项(每台 $6.7/月)把多台机器组成构建小集群,矩阵任务分发到不同物理机并行跑。

场景三 — MLX 推理.folder
scene://mlx-inference

统一内存,是跑本地模型最省心的显存

Apple Silicon 的统一内存架构意味着 CPU 与 GPU 共享同一块内存池:模型权重装进内存,GPU 就能直接用,不存在「显存不够、内存闲着」的尴尬。M4 Pro Workstation的 64GB 统一内存,放在推理场景里就是一块 64GB 级别的大显存。

MLX 是 Apple 官方的机器学习框架,对 M 系列芯片原生优化;llama.cpp 的 Metal 后端同样成熟;Core ML 则适合把模型打包进 App 前做转换与验证。三条路线都可以在这台机器上直接跑,租一天试模型,租一个月做长期实验,随时退。

量化模型内存占用速查

模型规模4-bit 量化占用(约)M4 Home 16GBM4 Pro Workstation 64GB
7B≈ 4.5 GB可以跑轻松,余量充足
14B≈ 9 GB勉强,上下文受限可以跑
32B≈ 19 GB装不下可以跑
70B≈ 40 GB装不下可以跑,建议控制上下文长度

占用为经验值,随量化方案与上下文长度浮动;拿不准就先按天租一台实测,$59.9 测一整天,比猜省钱。

对照 — 租用 vs 自购 vs 共享虚拟机
compare://rent-buy-vm

三条路,一张表算清楚

要 macOS 环境,你其实只有三个选项:租独享物理机、自己买一台、用别人切好的共享虚拟机。差别不在参数表上,在钱怎么花、等多久、以及性能归不归你。

维度 租 OpsMac 独享物理机 自购 Mac mini 共享虚拟机
成本 按天 $19.4 起,用几天付几天,季付更省 整机一次性投入,外加机位、电力与折旧 单价看似低,性能缩水后单位构建成本并不低
交付 从付款到可用 ≈4 分钟,凭据直达邮箱 物流数日,到手还要装机、配网络、开远程 开通快,但高峰期任务排队等资源
独享性 整台物理机归你,非虚拟机,无邻居抢占 独享,但只在你办公室那个位置独享 共享宿主机,CPU 与磁盘 IO 随邻居波动
升级弹性 随周期换配:16GB 不够,下个周期换 64GB M4 Pro Workstation 固定资产,配置买定离手,升级等于再买一台 可换规格,但性能上限仍受宿主机切分限制
退出成本 到期不续即退,存储擦除,没有沉没成本 二手折价出售,时间与差价都是成本 随时退,但迁移缓存与环境要重来一遍

结论不复杂:任务短且明确,租最划算;一年 365 天满负荷跑同一台,买也合理;对构建耗时和许可口径敏感的,先把共享虚拟机划掉。

周期匹配 — 你的任务多长,就租多长
billing://cycle-match

四档周期,各有各的正确用法

按天

发版冲刺

提审前集中出包、紧急热修复、临时验证签名链。任务以「天」为单位,机器也该以天计费。

$19.4/天 起
按周

适配测试

新版 macOS 或 Xcode 发布后的回归窗口,装最新工具链跑完整测试矩阵,一周正好。

$52.4/周 起
按月

常驻 runner

self-hosted runner 要 24 小时在线接任务,按月续费省心,缓存与环境长期保留。

$97.1/月 起
按季

团队开发机

跨时区团队共用的构建与实验机,按季锁定成本,四种周期里单价最低。

$264.1/季 起

> 提示:周期越长单位价越低;中途要升配,联系工单按剩余周期换到 M4 Pro Workstation即可。

工作流示例 — fastlane 出包到 TestFlight
workflow://fastlane-beta

一条真实流水,从命令到 TestFlight

下面是一个中型 Swift 项目在 M4 Home上跑 fastlane beta 的完整过程,各环节耗时为实测口径,供你估算自己的项目。

dev@mini-m4 — zsh
$ git clone git@github.com:your-org/your-app.git && cd your-app
√ 拉取完成,解析 SPM 依赖…
$ bundle exec fastlane beta
[match] 同步签名证书与描述文件… 完成
[gym] 归档 Release,ExportOptions: app-store…
✓ 归档成功:your-app.ipa (38.2 MB)
[pilot] 上传至 App Store Connect…
✓ 构建已提交 TestFlight,等待处理
≈ 2 分钟

拉取代码,解析 SPM / CocoaPods 依赖(命中缓存时约 30 秒)

≈ 30 秒

match 同步证书与描述文件,签名环境就绪

≈ 7 分钟

gym Release 归档并导出 ipa,M4 上全程无邻居抢占

≈ 2 分钟

pilot 上传 TestFlight,后续处理在 Apple 侧排队

全程 ≈ 12 分钟 · 首次跑通后可挂进 CI 无人值守

想看从下单到第一次 SSH 登录的完整路径,移步 怎么连上你的云端 Mac;连不上或 runner 掉线,故障排查窗口 有分步清单。

系统提示 — 下一步
next://checkout

选好文件夹了?

两档机型、四档周期、四个亚太节点,价格已按美元逐项列出,无隐藏项。

> 正在为你分配一台真机…从付款到可用 ≈4 分钟。