-
01
确认方案与节点配置、周期、城市和存储扩展保持一致
-
02
初始化 Xcode 环境检查版本、命令行工具、Git 与依赖管理器
-
03
执行首次 archive固定 scheme、签名设置和导出参数
-
04
注册 CI runner隔离工作目录并设置构建后清理规则
把云端 Mac 接进你的 Xcode 构建流程
这份指南覆盖选型、下单、连接、环境初始化、首次 archive 和 CI runner 接入。按顺序执行,先跑通一条可复现的发布链路,再增加并发与缓存。
- 3 档
- 固定配置
- 4 个
- 在售节点
- $20.7/天
- 最低入口价
开始前先锁定五项输入
真正影响交付速度的不是安装多少工具,而是账户权限、仓库权限、Xcode 版本、节点和租期是否在下单前确认清楚。
开发者权限
确认 Apple Developer 账户具备目标团队、证书、描述文件与发布所需权限。不要等到 archive 完成后才检查签名访问范围。
仓库访问
准备最小权限的部署凭据,确认主仓库、私有依赖、子模块和大文件存储均可读取。CI 专用凭据不要复用个人长期凭据。
Xcode 版本
把项目要求精确到主版本与构建版本,并核对 Swift、SDK 和命令行工具兼容性。runner 应固定版本,不要依赖临时切换。
节点位置
在新加坡、东京、首尔、香港之间,优先选择靠近主要开发者、代码仓库和依赖来源的节点,再通过实际连接体验验证。
租用周期
临时签名验证可从按天或按周开始;持续开发与固定 runner 更适合按月或按季。先按真实构建计划选择,不预估虚构利用率。
按负载选配置,不按项目名称猜
三档均为 Apple Silicon 独享物理机、非虚拟机。选择时重点看并行任务数、依赖规模、缓存体积与统一内存需求。
Go M4 Core
适合单项目验证、临时签名、较低并发的 Xcode 构建,以及需要独享环境的短期任务。
- 芯片
- M4
- 内存
- 16GB
- 存储
- 256GB
Go M4 Plus
适合多个日常项目、React Native 或 Flutter 依赖安装,以及需要适度并行的持续集成队列。
- 芯片
- M4
- 内存
- 24GB
- 存储
- 512GB
Go M4 Pro
适合更高并发构建、大型依赖缓存,以及对统一内存和本地存储空间要求更高的 AI 推理实验。
- 芯片
- M4 Pro
- 内存
- 64GB
- 存储
- 2TB
创建订单时一次确认四组参数
配置器会把主机、周期、节点和附加项合并到同一订单。提交前逐行核对,避免环境建好后再迁移数据。
芯片、内存和系统盘规格以配置卡为准。
附加项周期必须与主机周期保持一致。
新加坡、东京、首尔和香港均可在配置器中选择。
可选择 +1TB SSD、+2TB SSD 或 Thunderbolt 5 并联每台。
先用图形界面验收,再接入自动化
收到交付信息后,先通过 VNC 检查桌面、键盘、网络和系统状态;确认基础环境正常后,再用 SSH 执行脚本与 runner 任务。
用 VNC 完成桌面验收
核对分辨率、键盘布局、剪贴板、时区和网络访问。首次验收不要同时修改大量系统设置,便于出现问题时定位变量。
- 记录节点地址与连接时间
- 确认桌面会话可持续使用
- 检查基础下载与仓库访问
用 SSH 承接重复任务
把拉取代码、安装依赖、清理缓存和执行构建写成可重复脚本。凭据应使用最小权限,并与日志、构建产物分开保存。
- 限制密钥可访问的项目范围
- 固定脚本入口与工作目录
- 为失败命令保留退出码和日志
把开发环境初始化成可复现状态
先验证系统和 Xcode,再安装项目工具。每一步都留下版本输出,后续 runner 才能判断环境差异来自代码还是主机。
sw_vers
确认 macOS 版本
xcodebuild -version
确认 Xcode 与构建版本
xcode-select -p
确认命令行工具路径
git --version
确认 Git 可用
fastlane --version
确认自动化工具版本
-
01
检查系统账户
确认当前用户、主目录、管理员权限和磁盘挂载位置。项目目录不要散落在桌面或临时下载目录。
-
02
完成 Xcode 首次启动
打开目标 Xcode,接受必要组件安装,并确认命令行工具指向同一版本。
-
03
安装项目依赖链
按项目锁文件安装包管理器与依赖,不要在首次构建时盲目升级锁定版本。
-
04
固定 Fastlane 与脚本入口
使用项目内版本约束,并把构建、测试、归档和分发拆成可独立重试的任务。
首次 Xcode 云编译只验证一条主链路
第一轮目标不是追求最快,而是从干净目录得到可验证产物。固定仓库版本、scheme、签名和导出方式,之后再优化缓存。
拉取确定版本
使用明确的分支、标签或提交号。同步子模块与依赖锁文件,并记录本次构建对应的提交。
确认 scheme
先用 xcodebuild -list 检查可用 scheme,确认目标 scheme 已共享且适合命令行构建。
检查签名材料
核对证书、描述文件、Bundle Identifier 和团队权限。签名密码不得写入仓库或普通构建日志。
执行 archive
明确 workspace 或 project、scheme、configuration 与归档路径,失败时保留完整退出码和日志。
验证导出产物
检查产物名称、版本号、构建号、签名结果和文件大小,并确认 TestFlight 分发链路能够接收。
让 self-hosted runner 可控地接管构建
首次 archive 跑通后再注册 runner。核心不是“在线”,而是工作目录隔离、标签清晰、项目权限受限且每次任务后可恢复。
每个 runner 使用专用路径
源码、DerivedData、依赖缓存和导出产物分目录管理。不要让多个并发任务写入同一归档路径。
标签描述能力,不描述临时任务
标签可表达节点、Xcode 主版本和负载等级。避免把项目名、人员名或短期分支写进长期标签。
只授权需要运行的项目
限制 runner 可读取的仓库与变量范围。生产签名材料和测试构建权限应按工作流拆分。
任务结束后删除敏感残留
清除临时凭据、导出配置和不再需要的产物;缓存按目录、容量与更新时间管理,不做无差别清空。
上线前完成最后一轮交付检查
把下面项目写进团队运行手册。检查通过后,runner 才适合承接持续构建和 TestFlight 分发任务。
证书与描述文件
确认有效期、团队归属、Bundle Identifier 和使用范围,并记录更新责任人。
磁盘余量
检查源码、DerivedData、依赖缓存、归档和导出产物的占用,预留连续构建空间。
缓存策略
明确哪些目录可复用、何时失效、容量上限和清理条件,不缓存签名密码与临时令牌。
TestFlight 链路
从归档导出到上传完成一次端到端验证,并确认版本号、构建号和发布日志对应。
敏感信息清理
检查仓库、环境文件、命令历史和构建日志,删除不应长期保留的密钥、令牌与签名密码。
失败升级路径
记录订单号、节点、复现时间、错误日志和已执行步骤;需要协助时通过控制台提交工单。
准备好后,从一台独享节点开始
选择配置、周期和节点,先跑通首次 Xcode 归档,再把稳定命令接入 CI 队列。