从订单到构建

从下单到第一次 xcodebuild

按天租用一台独享物理 Mac mini,而不是共享虚拟机。从选机型、取得连接资料到跑通首次构建,沿着下面的顺序操作即可。

付款后约 15 分钟交付;首次连接与检查所需时间取决于你的密钥、项目和签名准备情况。

起租 1 天;两档 M4 机型,租期可选天、周、月或季。实际可用性以控制台实时返回为准。

首次构建清单01 → 04
  1. 01
    提交租期选机型、节点与计费周期
  2. 02
    核对交付取得主机地址与登录资料
  3. 03
    连接本机上传公钥,使用 SSH 或 VNC
  4. 04
    提交构建检查 Xcode,再运行项目命令
一笔订单对应一台独享物理机
01 / 提交租期

先确定工作负载,再选租多久

下单时依次选机型、节点、租期与支付方式。单次发版可以从 1 天开始;需要连续运行 CI 时,再比较周、月、季租期。租期按所选周期一次付清,以美元结算。

M4 / 16GB / 256GB

Commit 16

适合单个 App 的 Xcode 构建、fastlane 出包,以及先跑通 SSH、VNC 和开发工具链。若还要并行开模拟器与容器,先核对项目的实际内存占用。

按天 $20.5 起租用 Commit 16
M4 / 24GB / 512GB

Commit 24

适合 Xcode、模拟器与容器并行,或需要为 MLX 模型及构建缓存留更多空间的任务。模型文件较大时,可在下单时查看 SSD 附加选项。

按天 $41.4 起租用 Commit 24
节点怎么选?

可选新加坡、日本(东京)、韩国(首尔)、香港、美国东部和美国西部。优先选离团队和代码服务较近、你能稳定连通的节点;两档机型均覆盖这 6 个节点。

支付仅支持 USDT-TRC20,或经 Stripe 处理的 Visa / Mastercard / Amex;实际可用网关以控制台返回为准。

02 / 核对交付

拿到连接资料,先核对四个字段

交付信息在控制台查看。不要把登录资料、私钥或签名证书贴进工单正文;需要排查时,提供订单号和脱敏后的错误输出即可。

首次连接前需要核对的交付字段
交付字段用来做什么核对方式
主机地址指定 SSH 与 VNC 连接目标。复制控制台提供的地址,确认没有附带多余空格。
用户名与主机地址组成 SSH 登录身份。使用订单对应的账号,不要猜测系统默认用户名。
SSH 公钥授权你的设备通过密钥登录。上传公钥文件内容;私钥只保存在自己的设备上。
VNC 访问方式打开 macOS 图形界面。按交付页给出的连接方式与凭据操作,不把 VNC 当成 SSH 端口使用。
还没有 SSH 密钥?

先在自己的电脑生成一对密钥,再将公钥上传到控制台。上传后用本机私钥发起连接;不要在远程主机上生成用于登录这台主机的唯一私钥。

连不上时先区分故障位置

先核对地址、用户名和公钥,再检查本地网络能否到达目标。如果 TCP 连接超时,优先排查网络;如果提示公钥拒绝,优先核对身份与授权。

03 / 命令行验证

用 SSH 登录,再运行第一次构建

在本地终端依据交付信息设置连接变量。先确认 macOS 与处理器架构,再在项目目录查询可用 scheme;只有确认项目 scheme 与签名配置后,才执行项目构建或归档。

vmcommit — sshM4
连接 · 在本地终端执行,变量取自交付信息
ssh -i ~/.ssh/id_ed25519 "$VM_USER@$VM_HOST"

连接建立后,命令提示符会切换到远程 Mac。首次连接时,请核对主机指纹与交付信息。

核对 · 在远程 Mac 执行
sw_vers -productName
uname -m
sysctl -n machdep.cpu.brand_string

预期分别看到 macOS、arm64 和 Apple M4;具体系统版本以交付机器实际输出为准。

构建 · 进入项目目录并选定真实 scheme 后执行
xcodebuild -list
xcodebuild -scheme "$SCHEME" -destination 'generic/platform=iOS' build CODE_SIGNING_ALLOWED=NO

不签名的编译用于先验证项目能否构建。成功时检查退出状态与 BUILD SUCCEEDED;失败时从第一条构建错误开始排查。

打包 · 签名资料配置完成后执行
fastlane gym --scheme "$SCHEME"

归档与导出需要项目所需的证书、描述文件和 fastlane 配置。命令结束后检查导出结果,而不只看最后一行日志。

这里的 VM_USER、VM_HOST 和 SCHEME 是 shell 变量:先用交付信息及项目实际 scheme 为它们赋值。若项目依赖特定 Xcode 版本,运行 xcodebuild -version 核对后再切换。

04 / 图形界面

需要 Xcode 界面时,再打开 VNC

SSH 适合传文件、跑构建和查日志;需要操作 Xcode 界面、模拟器或系统设置时,再按交付信息连接 VNC。两种方式访问的是同一台独享物理 Mac mini。

01按交付说明建立连接

在 VNC 客户端输入交付页指定的地址和访问资料。不要直接把 SSH 的用户名、密钥或端口照搬到 VNC 客户端。

02先用适合网络的分辨率

从客户端较低的显示分辨率开始;画面与输入都稳定后,再提高分辨率。跨区域操作时,优先保证响应速度,而不是一开始就追求最高画质。

03图形操作结束后保留命令行路径

让实际构建仍可通过 SSH 命令复现。这样 VNC 会话断开时,构建、日志和 CI 排障不必依赖桌面画面。

若出现黑屏,先确认连接到了正确的订单与节点,再检查会话状态;不要反复修改项目或删除构建缓存来处理远程画面问题。

05 / 接入 CI

把首次手动构建变成可重复任务

准备接入 GitHub Actions self-hosted runner 时,先在代码仓库的 runner 设置中生成注册命令与短期令牌,再到这台 Mac 上执行平台当次提供的命令。令牌不写进仓库、截图或构建日志。

REGISTER

绑定正确的仓库

将 runner 注册到需要构建的仓库或受控组织,并给它设置能识别这台 macOS 主机的标签。确认界面显示 runner 在线后,再提交工作流。

EXECUTE

先运行最小构建

工作流先检出代码,再执行与手动验证相同的 Xcode 命令。成功后才逐步加入依赖缓存、测试、签名和分发,避免一次引入多个故障点。

PROTECT

限定谁能提交任务

runner 能访问这台机器上的构建环境。为可触发的分支与仓库设置权限边界,妥善管理签名资料;租期结束前移除不再使用的 runner 注册。

最小工作流应验证什么?

先验证 runner 被正确选中、代码能检出、xcodebuild -version 与手动检查一致,再运行已验证的 scheme。工作流中的 scheme、目标平台和签名开关应与项目匹配,不能直接把示例命令当成所有项目的出包配置。

06 / 租期收尾

到期前,先处理任务和数据

租期从交付时刻起算。把备份、runner 清理和续租决定留在到期之前;不要把唯一一份源码、证书或构建产物留在远程机器上。

01导出需要保留的内容

核对源码提交状态,取回归档、日志、模型文件与配置,并在自己的存储位置验证文件可以打开。签名资料按团队既有安全流程保管。

02决定续租还是升档

如果构建尚未完成,在控制台查看续租;如果并行任务受内存或磁盘约束,比较 Commit 16 与 Commit 24 的规格,再按实际需求调整。

03清理外部任务关联

检查 CI 队列是否仍有任务、runner 是否还绑定仓库。到期后的数据处理以服务条款与控制台展示的规则为准,备份应在租期内完成。

继续阅读

跑通一次后,按问题继续查

需要确认连接方式、构建命令或计费规则时,先查文档。想系统整理远程开发环境,可到博客查找「远程 Mac 开发环境搭建」;文章内容以博客当前发布为准。

准备提交第一天

项目准备好了,就给它一台 Mac。

从 1 天开始,选节点与机型;交付后沿这份清单完成首次构建。