从订单到首次归档

把云端 Mac 接进你的 Xcode 构建流程

这份指南覆盖选型、下单、连接、环境初始化、首次 archive 和 CI runner 接入。按顺序执行,先跑通一条可复现的发布链路,再增加并发与缓存。

3 档
固定配置
4 个
在售节点
$20.7/天
最低入口价
BUILD RUN SHEET 首次 iOS 归档
准备执行
代码仓库 独享节点 归档产物
  1. 01
    确认方案与节点配置、周期、城市和存储扩展保持一致
  2. 02
    初始化 Xcode 环境检查版本、命令行工具、Git 与依赖管理器
  3. 03
    执行首次 archive固定 scheme、签名设置和导出参数
  4. 04
    注册 CI runner隔离工作目录并设置构建后清理规则
SG 新加坡 JP 东京 KR 首尔 HK 香港
物理节点 1 个订单对应 1 台独享主机
步骤 01

开始前先锁定五项输入

真正影响交付速度的不是安装多少工具,而是账户权限、仓库权限、Xcode 版本、节点和租期是否在下单前确认清楚。

开发者权限

确认 Apple Developer 账户具备目标团队、证书、描述文件与发布所需权限。不要等到 archive 完成后才检查签名访问范围。

仓库访问

准备最小权限的部署凭据,确认主仓库、私有依赖、子模块和大文件存储均可读取。CI 专用凭据不要复用个人长期凭据。

Xcode 版本

把项目要求精确到主版本与构建版本,并核对 Swift、SDK 和命令行工具兼容性。runner 应固定版本,不要依赖临时切换。

节点位置

在新加坡、东京、首尔、香港之间,优先选择靠近主要开发者、代码仓库和依赖来源的节点,再通过实际连接体验验证。

租用周期

临时签名验证可从按天或按周开始;持续开发与固定 runner 更适合按月或按季。先按真实构建计划选择,不预估虚构利用率。

步骤 02

按负载选配置,不按项目名称猜

三档均为 Apple Silicon 独享物理机、非虚拟机。选择时重点看并行任务数、依赖规模、缓存体积与统一内存需求。

轻量构建

Go M4 Core

适合单项目验证、临时签名、较低并发的 Xcode 构建,以及需要独享环境的短期任务。

芯片
M4
内存
16GB
存储
256GB
选择 Go M4 Core
高内存负载

Go M4 Pro

适合更高并发构建、大型依赖缓存,以及对统一内存和本地存储空间要求更高的 AI 推理实验。

芯片
M4 Pro
内存
64GB
存储
2TB
选择 Go M4 Pro
步骤 03

创建订单时一次确认四组参数

配置器会把主机、周期、节点和附加项合并到同一订单。提交前逐行核对,避免环境建好后再迁移数据。

订单参数核对单 提交前检查
HOST
选择三档主配置之一

芯片、内存和系统盘规格以配置卡为准。

TERM
选择天、周、月或季

附加项周期必须与主机周期保持一致。

NODE
选择四个在售节点之一

新加坡、东京、首尔和香港均可在配置器中选择。

ADD
按任务加入扩展

可选择 +1TB SSD、+2TB SSD 或 Thunderbolt 5 并联每台。

节点选择

先靠近主要工作流

远程桌面体验更依赖开发者到节点的链路;依赖拉取速度还会受到仓库和下载源位置影响。建议先选候选节点,再用真实项目测试。

查看节点说明
可用性说明

以控制台实时返回为准

所有目录内组合均可发起订购,创建订单时的实际可用状态由控制台实时返回。不要根据页面截图推断当前状态。

开始配置订单
步骤 04

先用图形界面验收,再接入自动化

收到交付信息后,先通过 VNC 检查桌面、键盘、网络和系统状态;确认基础环境正常后,再用 SSH 执行脚本与 runner 任务。

连接 01

用 VNC 完成桌面验收

核对分辨率、键盘布局、剪贴板、时区和网络访问。首次验收不要同时修改大量系统设置,便于出现问题时定位变量。

  • 记录节点地址与连接时间
  • 确认桌面会话可持续使用
  • 检查基础下载与仓库访问
连接 02

用 SSH 承接重复任务

把拉取代码、安装依赖、清理缓存和执行构建写成可重复脚本。凭据应使用最小权限,并与日志、构建产物分开保存。

  • 限制密钥可访问的项目范围
  • 固定脚本入口与工作目录
  • 为失败命令保留退出码和日志
步骤 05

把开发环境初始化成可复现状态

先验证系统和 Xcode,再安装项目工具。每一步都留下版本输出,后续 runner 才能判断环境差异来自代码还是主机。

环境检查命令 ENV-CHECK
$ sw_vers 确认 macOS 版本
$ xcodebuild -version 确认 Xcode 与构建版本
$ xcode-select -p 确认命令行工具路径
$ git --version 确认 Git 可用
$ fastlane --version 确认自动化工具版本
  1. 01

    检查系统账户

    确认当前用户、主目录、管理员权限和磁盘挂载位置。项目目录不要散落在桌面或临时下载目录。

  2. 02

    完成 Xcode 首次启动

    打开目标 Xcode,接受必要组件安装,并确认命令行工具指向同一版本。

  3. 03

    安装项目依赖链

    按项目锁文件安装包管理器与依赖,不要在首次构建时盲目升级锁定版本。

  4. 04

    固定 Fastlane 与脚本入口

    使用项目内版本约束,并把构建、测试、归档和分发拆成可独立重试的任务。

步骤 06

首次 Xcode 云编译只验证一条主链路

第一轮目标不是追求最快,而是从干净目录得到可验证产物。固定仓库版本、scheme、签名和导出方式,之后再优化缓存。

01

拉取确定版本

使用明确的分支、标签或提交号。同步子模块与依赖锁文件,并记录本次构建对应的提交。

02

确认 scheme

先用 xcodebuild -list 检查可用 scheme,确认目标 scheme 已共享且适合命令行构建。

03

检查签名材料

核对证书、描述文件、Bundle Identifier 和团队权限。签名密码不得写入仓库或普通构建日志。

04

执行 archive

明确 workspace 或 project、scheme、configuration 与归档路径,失败时保留完整退出码和日志。

05

验证导出产物

检查产物名称、版本号、构建号、签名结果和文件大小,并确认 TestFlight 分发链路能够接收。

成功标准 同一提交可用同一命令再次得到有效归档
暂不优化 并发、缓存命中率和增量构建速度
步骤 07

让 self-hosted runner 可控地接管构建

首次 archive 跑通后再注册 runner。核心不是“在线”,而是工作目录隔离、标签清晰、项目权限受限且每次任务后可恢复。

工作目录

每个 runner 使用专用路径

源码、DerivedData、依赖缓存和导出产物分目录管理。不要让多个并发任务写入同一归档路径。

标签设计

标签描述能力,不描述临时任务

标签可表达节点、Xcode 主版本和负载等级。避免把项目名、人员名或短期分支写进长期标签。

访问范围

只授权需要运行的项目

限制 runner 可读取的仓库与变量范围。生产签名材料和测试构建权限应按工作流拆分。

清理规则

任务结束后删除敏感残留

清除临时凭据、导出配置和不再需要的产物;缓存按目录、容量与更新时间管理,不做无差别清空。

步骤 08

上线前完成最后一轮交付检查

把下面项目写进团队运行手册。检查通过后,runner 才适合承接持续构建和 TestFlight 分发任务。

证书与描述文件

确认有效期、团队归属、Bundle Identifier 和使用范围,并记录更新责任人。

磁盘余量

检查源码、DerivedData、依赖缓存、归档和导出产物的占用,预留连续构建空间。

缓存策略

明确哪些目录可复用、何时失效、容量上限和清理条件,不缓存签名密码与临时令牌。

TestFlight 链路

从归档导出到上传完成一次端到端验证,并确认版本号、构建号和发布日志对应。

敏感信息清理

检查仓库、环境文件、命令历史和构建日志,删除不应长期保留的密钥、令牌与签名密码。

失败升级路径

记录订单号、节点、复现时间、错误日志和已执行步骤;需要协助时通过控制台提交工单。

READY 首次构建可复现、runner 权限受控、敏感信息已清理
进入控制台提交工单

准备好后,从一台独享节点开始

选择配置、周期和节点,先跑通首次 Xcode 归档,再把稳定命令接入 CI 队列。