从连接检查到流水线验收

把云端 Mac 配置成可重复使用的开发环境

这里按实际操作顺序整理首次连接、Xcode 与命令行工具配置、数据迁移、CI/CD 接入和问题升级方法。每一步都给出输入信息、执行动作与验收标准,适用于独享物理节点,不涉及虚拟机资源共享。

5 个节点 新加坡、日本(东京)、韩国(首尔)、香港、美国西部
2 档配置 M4 / 16GB / 256GB 与 M4 / 24GB / 512GB
365 天运行 没有定期停机安排,实际设备状态以控制台返回为准
首次开通路线

先确认交付信息,再进入 macOS 桌面

首次连接的目标不是立即安装全部工具,而是确认设备、节点、身份和图形界面四项信息互相对应。完成以下四步后,再开始迁移代码和依赖。

  1. 01

    查看设备信息

    登录控制台,打开对应订单的设备详情,记录订单号、机型、节点、主机地址和当前系统版本。不要把连接凭据复制到群聊、公开文档或仓库文件。

    验收:订单号与设备详情一致
  2. 02

    确认节点与网络

    核对所选节点是否符合团队访问位置,并从本地网络检查到主机地址的连通情况。若公司网络有出口限制,先确认连接端口未被策略拦截。

    验收:地址可达且节点无误
  3. 03

    取得连接凭据

    只从控制台设备详情读取账户与连接信息。首次使用后应按团队权限规范更新凭据,并将访问范围限制在实际需要连接的成员。

    验收:身份验证可以完成
  4. 04

    验证桌面环境

    进入 macOS 图形界面后,检查显示分辨率、键盘布局、剪贴板和终端是否正常。打开“关于本机”核对芯片、内存与系统版本。

    验收:桌面与终端均可操作
连接失败时保留现场

记录发生时间、使用的本地网络、错误提示和已执行步骤。不要在同一时间连续修改密码、网络设置和远程访问配置,否则难以判断是哪项变化影响了结果。

开发环境指南

把工具版本写进清单,而不是依赖记忆

可复现环境至少需要记录操作系统、Xcode、命令行工具、包管理器、语言运行时、构建工具和项目 SDK。先建立版本基线,再逐项安装依赖。

工具链基线

建议记录的版本与验证命令

命令输出应随项目文档或内部配置清单保存,敏感路径与仓库地址需要脱敏。

云端 Mac 开发工具安装和版本验证表
工具 安装或配置重点 验证命令
Xcode 记录完整版本、build 编号和当前选择路径 xcodebuild -version
Command Line Tools 确认与当前 Xcode 路径对应,避免调用旧工具链 xcode-select -p
Homebrew 先导出依赖清单,再按新环境重新安装 brew config
Git 配置提交身份、凭据范围和仓库访问方式 git --version
Fastlane 通过项目依赖锁定版本,避免全局版本漂移 bundle exec fastlane --version
项目 SDK 记录 Ruby、Python、Node 或其他运行时版本 xcrun --show-sdk-version
安装顺序

先系统工具,再项目依赖

推荐顺序为 Xcode、Command Line Tools、Homebrew、Git、语言运行时、Fastlane、项目 SDK。每完成一层就执行验证命令并保存输出。

查看迁移验收路径
版本切换

不要覆盖唯一可用环境

需要验证多个 Xcode 或 macOS 组合时,应先保留当前稳定基线,记录切换前后的路径、版本与项目测试结果,再决定是否调整默认工具链。

咨询环境迁移方案
迁移路径

将迁移拆成数据、工具链与 CI 三次验收

直接复制整个本地环境通常会把旧缓存、绝对路径和不再使用的依赖一起带入。更可靠的方式是先迁移必要数据,再重建工具链,最后接入自动化任务。

阶段 1

迁移项目数据

区分代码、构建输入、配置文件、缓存和产物,只迁移需要长期保留或可以验证来源的数据。

  • 通过版本库获取代码并核对分支与提交
  • 单独迁移未入库的必要配置,敏感字段使用安全渠道
  • 不直接复制旧的 DerivedData、临时缓存和失败产物
验收项 仓库状态干净,关键文件校验一致,敏感信息未进入公开目录。
阶段 2

复现工具链

根据版本清单安装 Xcode、命令行工具、Homebrew 依赖和语言运行时,不以旧机器的全盘复制替代安装记录。

  • 保存 Xcode、Git、包管理器与 SDK 版本输出
  • 执行依赖锁文件对应的安装流程
  • 用一个可控项目完成编译、测试和归档
验收项 同一提交可稳定构建,工具版本有记录,失败时能定位到具体依赖层。
阶段 3

接入持续集成

先使用低权限测试仓库验证 runner,再接入正式项目。把标签、工作目录、缓存和产物策略写进流水线配置。

  • 为 runner 分配明确的系统、架构与用途标签
  • 限制仓库凭据权限与可访问项目范围
  • 验证任务取消、失败日志和产物回传路径
验收项 仓库触发、云端执行、产物回传和失败留档形成完整闭环。
术语小词典

先统一术语,再讨论连接与性能

以下词语用于描述资源归属、连接方式与构建流程。它们不是营销标签,而是判断操作边界和排查责任的基础。

物理节点
实际承载云端 Mac 的设备与机房网络位置。节点区域影响团队连接路径,但不改变所选机型的芯片、内存和存储规格。
独享
一个订单对应独立物理设备资源,不与其他客户共享同一虚拟化计算实例。系统环境与任务进程由该订单使用者管理。
非虚拟机
交付对象是物理 Mac,而不是从宿主机划分出的虚拟计算单元。设备重启、工具链和工作目录均围绕该物理节点运行。
VNC
用于访问 macOS 图形桌面的远程连接方式。连接信息应从控制台取得,不应在公开文档、仓库或聊天记录中长期保存。
self-hosted runner
由团队管理并连接到代码仓库自动化系统的执行端。云端 Mac 可承担编译、测试、归档和产物上传任务。
构建队列
等待 runner 执行的任务集合。需要结合并发策略、任务优先级、超时和取消机制判断队列是否健康。
代码签名
构建和发布流程中用于确认应用来源与授权范围的步骤。相关材料由用户自行管理,并应与仓库凭据分开控制权限。
节点区域
当前可选择新加坡、日本(东京)、韩国(首尔)、香港和美国西部。选择时应考虑主要操作者位置与代码协作路径。
CI/CD 接入

让仓库触发、节点执行与产物回传可追踪

接入 runner 的关键不是让第一条任务跑通,而是确保凭据范围、标签路由、缓存目录、产物保存和失败日志都能被持续管理。

凭据

仓库权限保持最小范围

为 runner 使用独立凭据,只开放拉取代码、读取必要依赖和上传指定产物所需权限。不要把管理权限或长期密钥写入流水线文件。

  • 限制可访问仓库与组织范围
  • 区分只读依赖凭据和发布凭据
  • 在日志中屏蔽令牌、主机地址和敏感路径
标签

用标签描述能力而非设备昵称

建议标签包含操作系统、芯片架构、Xcode 基线和任务用途。流水线通过能力标签选节点,避免设备改名后任务路由失效。

  • 区分构建、测试和发布用途
  • 将版本标签纳入变更记录
  • 避免所有任务共用一个宽泛标签
缓存

缓存目录必须可清理

依赖缓存和 DerivedData 应有清晰边界,不能与不可再生的构建产物混放。清理策略需保留重建路径,避免磁盘占用持续增长。

  • 按项目与工具版本拆分缓存键
  • 缓存失效时允许完整重建
  • 定期检查大目录和重复归档
产物与日志

失败任务也要留下可诊断信息

无论任务成功或失败,都应回传必要的测试报告、关键构建日志和产物索引。日志保留原始时间顺序,同时清除凭据和个人数据。

  • 为产物附上提交、分支和工具版本
  • 保留失败命令、退出码和前后文
  • 记录任务开始时间、结束时间和 runner 标签
输入 仓库事件与最小权限凭据
执行 独享物理云端 Mac runner
输出 产物、测试报告与脱敏日志
问题升级流程

提交前先固定时间、环境与复现路径

有效的问题描述应让支持人员能够定位到具体订单、节点、系统环境和失败步骤。任何密码、私钥、完整令牌或未脱敏签名材料都不应进入公开区域。

提交字段

建议一次提供完整的六项上下文

字段越完整,越能减少来回确认。无法确认的项目可以写“未知”,不要用推测替代实际观察。

订单号 用于对应设备与订购记录,不提供支付凭据。
节点 写明新加坡、东京、首尔、香港或美国西部。
macOS 版本 附完整版本与 build 编号,不只写大版本名称。
发生时间 写明时区、首次出现时间和最近一次复现时间。
复现步骤 按执行顺序记录命令、界面操作和实际结果。
脱敏日志 保留错误上下文,移除令牌、密码、私钥和敏感路径。
已有订单

在控制台提交工单

控制台工单可以与订单和设备上下文对应。提交后避免反复改变系统、连接设置或工具版本,除非工单回复要求执行指定验证。

进入控制台工单
售前与迁移问题

通过联系页整理需求

如果还没有订单,可说明团队位置、目标工具链、预计任务类型、节点偏好和租用周期,用于判断配置与迁移路线。

前往联系页
账户与付款帮助

按订单、金额与支付识别信息核对状态

所有价格和账单均以美元(USD)结算。付款方式仅包括 USDT-TRC20,以及 Visa / Mastercard / Amex(经 Stripe);实际可用网关以控制台返回为准。

先看订单账单

在控制台打开对应订单,核对机型、周期、节点、存储附加项、Thunderbolt 5 并联数量和美元总额。不要只凭支付记录中的金额猜测对应订单。

核对卡片付款

使用 Visa / Mastercard / Amex(经 Stripe)时,重点核对订单号、美元金额、付款时间和控制台显示的订单状态。不要通过邮件发送完整卡号或安全码。

核对 USDT-TRC20

保留与订单对应的交易识别信息,并核对链类型、美元订单金额和控制台状态。提交支持请求时只提供必要识别信息,不公开钱包访问凭据。

订单状态与付款记录暂不一致时

不要重复创建多个相同订单。先保存订单号、付款时间、美元金额和必要的交易识别信息,再通过控制台工单提交核对。

核对订单状态
下一步

先确定任务,再选择节点与计费周期

如果已经明确工具链、运行时长和团队位置,可以直接配置两档 M4 物理云端 Mac。仍在比较环境时,先查看完整价格与规格。