控制台账户
确认下单人员能够登录控制台,并能查看订单、账单、节点和设备状态。技术负责人应知道由谁提交工单与执行续租。
这份上手指南覆盖准备材料、选择两档独享物理机、确认四个节点、首次 SSH 登录与 Xcode 构建验证。按顺序执行,完成每一步再进入下一步。
下单前明确谁负责连接、构建和权限管理,可以减少设备交付后反复补充信息。以下五项都应有明确负责人。
确认下单人员能够登录控制台,并能查看订单、账单、节点和设备状态。技术负责人应知道由谁提交工单与执行续租。
准备团队认可的 Ed25519 公钥,仅提交公钥内容。私钥保留在受控设备或密钥系统中,不通过邮件、工单或仓库传递。
从项目、CI 配置和依赖中确认目标 Xcode 版本,同时记录最低 macOS 要求。不要只写“最新版”,应保留可核对的版本号。
确认节点可以使用受限部署密钥或短期令牌读取所需仓库。先确定最小权限范围,再决定是否允许写入制品或提交状态。
需要图形操作时,提前准备 VNC 或 macOS 屏幕共享客户端。自动化、诊断和文件操作优先使用 SSH,减少对图形会话的依赖。
两档机型均为 Apple Silicon 物理节点与独享物理机,非虚拟机。新加坡、东京、首尔、香港均在目录内,实际可用性以下单时控制台实时返回为准。
M4 · 16GB RAM · 256GB SSD
适合单条 iOS 构建流水线、日常 macOS 编译、依赖验证和持续运行的轻量 self-hosted runner。
选择依据:先测量一次干净构建的峰值内存与磁盘工作集,再为依赖缓存、日志和制品预留空间。
M4 · 24GB RAM · 512GB SSD
适合更大的 Xcode 工作区、并行测试、容器工作负载,以及需要保留更多构建缓存和制品的团队。
选择依据:当 runner 需要同时执行编译、模拟器测试与依赖处理时,优先核对内存峰值和缓存增长速度。
节点选择应靠近主要开发者、代码源或自动化调度入口。不要只比较单次 ping,还要观察工作时段的稳定性与远程桌面体验。
可按天、周、月或季租用。短期验证先按预计测试时长选择周期;稳定流水线应结合发布节奏和续租责任确认周期。
订单会分别列出基础机型、周期、节点和附加项。所有价格与结算统一使用美元(USD),提交支付前应由下单人员复核一次。
按控制台返回的支付信息核对网络、金额和订单标识。转账前确认使用 TRC20 网络,提交后保留可用于对账的交易记录。
银行卡支付经 Stripe 处理。付款页面返回后,在控制台核对订单状态与账单金额,不以浏览器返回页作为设备交付依据。
档名、M4 芯片、内存和基础 SSD 应与所选方案一致。
确认天、周、月或季,不把测试周期误选为长期周期。
确认新加坡、东京、首尔或香港与连接计划一致。
确认 SSD 扩展与 Thunderbolt 5 并联数量,再提交支付。
实际可用支付网关以控制台返回为准。支付完成不等于设备已经可连接,应继续检查订单状态和交付信息。
设备状态变为可连接后,再读取地址、账户说明和租期。不要使用聊天记录、旧截图或其他订单中的连接信息。
每个字段都应来自同一笔订单。若节点、地址或租期与预期不一致,先停止连接并通过控制台提交工单。
第一次 SSH 连接的重点不是立即安装依赖,而是确认目标地址、主机指纹、登录用户与硬件信息均属于当前订单。
$ export ZOOMMINI_HOST=assigned-host
$ ssh-keyscan -t ed25519 "$ZOOMMINI_HOST" | ssh-keygen -lf -
256 SHA256:7qV3mL9kR2nF4cX8 assigned-host (ED25519)
$ ssh build@"$ZOOMMINI_HOST"
Last login: remote session
build@zoommini-node ~ %
$ sw_vers
ProductName: macOS
ProductVersion: 15.2
BuildVersion: 24C101
$ system_profiler SPHardwareDataType
Hardware:
Model Name: Mac mini
Chip: Apple M4
Memory: 16 GB
$ uname -m
arm64
将分配地址写入临时环境变量或 SSH config,避免命令历史中混入错误地址。若使用非默认端口,同时记录端口参数。
把本地读取的 Ed25519 指纹与交付记录进行逐字符比较。指纹不一致时停止连接,不要直接接受变化后的记录。
sw_vers 用于确认 macOS 版本,system_profiler 用于确认芯片与内存,uname -m 应返回 arm64。
先验证 Xcode 选择,再执行项目构建,最后运行自动化测试。每一步都保留退出码和关键日志,避免只凭界面判断成功。
$ xcodebuild -version
Xcode 16.2
Build version 16C5032a
Xcode 版本和构建版本与项目矩阵一致,命令退出码为 0。
$ xcodebuild -scheme App build
Prepare packages
CompileSwiftSources normal arm64
Ld App normal arm64
** BUILD SUCCEEDED **
输出末尾出现 BUILD SUCCEEDED,并且没有签名、依赖或磁盘空间错误。
$ fastlane ios test
Resolving Swift Package Manager dependencies
Test Suite 'All tests' passed
Executed 48 tests, with 0 failures
fastlane.tools finished successfully
测试数量符合预期、失败数为 0,fastlane 正常结束且进程退出码为 0。
先运行 xcode-select -p 查看当前开发者目录,再按团队版本矩阵切换,不要直接修改项目文件规避版本问题。
核对仓库权限、包管理器路径和网络访问范围。清理缓存前先保存错误日志,避免丢失最初的失败证据。
核对证书、描述文件与 runner 权限的加载方式。秘密信息应由受控密钥系统注入,不写入脚本和构建日志。
验收成功只说明工具链可用。正式接入 CI/CD 前,还要完成凭据更新、公钥管理、权限回收和 runner 最小权限设置。
按交付说明更新需要更换的初始凭据。使用唯一且受控的密码,不与本地开发机、仓库或其他节点复用。
为需要访问的人员和自动化身份分别配置公钥。不要让多人共享同一私钥,公钥备注应能追溯到具体用途。
删除测试期间临时加入的公钥、仓库令牌、管理员权限和远程桌面授权。离组成员与停用 runner 的访问应立即回收。
让 runner 只读取必要仓库、执行规定脚本并写入指定制品位置。不要默认授予系统管理权限或跨项目令牌。
以下五项同时满足后,再把节点加入正式调度:订单字段一致、SSH 指纹一致、系统规格一致、构建与测试退出码为 0、临时权限已经回收。
先选择机型、节点与周期。设备可连接后,按本页顺序完成指纹核对、系统检查、构建验证和权限加固。