工程问题分流台

先定位环节,再处理云 Mac 问题

从订单开通、节点连接、iOS 构建,到存储并联与账单核对,按问题发生的位置逐项检查。每一组说明都给出判断依据、命令和提交工单时需要保留的信息。

01 / 首次开通

按固定顺序完成配置,减少交付后的返工

首次租用时先确定任务对内存和存储的要求,再选择靠近代码仓库、团队成员或发布市场的节点。不要先付款再倒推配置;机型、节点、周期和附加项应在确认订单前一起核对。

  1. 01

    从三档目录中选择机型

    ZoneMini M4 Core 为 M4、16GB 内存、256GB SSD,适合轻量 iOS 构建与单项目自动化;ZoneMini M4 Plus 为 M4、24GB 内存、512GB SSD,适合日常开发和多项目流水线;ZoneMini M4 Pro 为 M4 Pro、64GB 内存、2TB SSD,面向高内存推理与高负载并行任务。三档均为云端 Mac 独享物理机、非虚拟机。

  2. 02

    从五个在售节点中确定位置

    可选新加坡、日本(东京)、韩国(首尔)、香港、美国东部。优先考虑代码仓库与主要操作者的位置,再结合发布市场和团队时区。五个节点均支持三档机型,实际可用状态以控制台实时返回为准。

  3. 03

    选择天、周、月或季周期

    临时兼容测试可按天安排;持续一轮迭代可比较周周期;固定 Runner、长期归档或持续推理任务通常更适合月或季周期。页面价格不换算、不四舍五入,订单金额按所选机型、附加项和周期直接计算。

  4. 04

    完成 USD 结算并核对订单

    仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe)。提交前核对机型名称、节点、周期、存储附加项、Thunderbolt 5 并联数量及联系信息。实际可用网关以控制台返回为准。

  5. 05

    获取连接资料并完成首次验证

    交付后先核对节点地址、用户名、临时凭据和连接说明。首次连接成功后更新临时凭据,记录主机指纹,并分别验证 SSH 命令行与 macOS 屏幕共享。连接资料属于敏感信息,不应粘贴到公开仓库或普通聊天记录。

开通前建议准备的最小信息

列出项目类型、同时运行的任务数、Xcode 版本范围、单次归档时长、依赖缓存体量、目标节点和预计租期。还不能判断机型时,先查看三档规格与周期价格,再把任务数据发给团队确认。

02 / 连接诊断

从实例状态向本地网络逐层排除

连接失败时不要同时改凭据、端口和防火墙。按状态、身份、网络、端口、服务设置的顺序检查,每一步保留结果,才能判断问题位于本地、传输路径还是目标节点。

CONNECTION CHECK 六项顺序检查
  1. 01

    确认实例状态

    登录控制台确认订单对应实例处于可连接状态,并核对当前查看的是正确节点与机型。若刚完成交付,先以控制台显示的信息为准,不使用旧邮件或旧记录中的地址。

  2. 02

    核对访问凭据

    区分用户名、密码和 SSH 密钥用途,检查密钥文件权限、输入法状态及复制时是否带入空格。连续认证失败时停止重复尝试,重新核对凭据来源。

  3. 03

    排除本地网络限制

    切换到可信的备用网络进行对照,确认公司出口策略、代理或安全软件没有拦截目标地址。不要把关闭全部安全防护当作长期解决方案。

  4. 04

    检查 SSH 端口

    先测试 TCP 22 端口是否可达,再运行详细 SSH 日志。端口超时通常指向网络路径或规则问题;端口可达但认证失败,则继续检查用户名、密钥和权限。

  5. 05

    核对屏幕共享设置

    确认使用交付资料中的地址与授权信息。出现黑屏或分辨率异常时,先断开旧会话再重新连接,并记录客户端系统、显示数量和缩放设置。

  6. 06

    检查防火墙规则

    核对本地防火墙、团队出口规则与节点侧允许范围。规则变更应采用最小开放原则,保留来源、端口、时间和变更人的记录。

网络与端口检查
nc -vz <节点地址> 22
ssh -vvv -o ConnectTimeout=10 用户名@节点地址
route -n get <节点地址>

将占位内容替换为交付资料中的节点地址与用户名。

如何解释结果

先分清超时与认证失败

连接超时
优先检查本地出口、代理、防火墙和目标端口可达性。
连接被拒绝
记录时间、节点和完整错误行,确认目标地址与端口是否正确。
认证失败
核对用户名、密钥路径、文件权限及交付凭据,不反复猜测密码。
主机指纹变化
暂停连接并提交工单核验,不直接删除已记录指纹后继续。
阅读完整连接步骤
03 / 构建环境

把构建失败拆成工具链、签名、依赖与产物四层

同一条流水线在交互式会话中成功、在 CI Runner 中失败,通常意味着环境变量、钥匙串上下文、工作目录或缓存权限不同。排查时应使用与失败任务相同的用户和执行入口。

A

确认 Xcode 与命令行工具

记录系统版本、Xcode 版本和当前开发者目录。若安装了多个 Xcode 版本,确认流水线调用的路径与项目要求一致,不只检查图形界面中打开的版本。

  • xcodebuild -version 获取实际构建工具版本
  • xcode-select -p 获取当前开发者目录
  • swift --version 核对 Swift 工具链
B

检查证书与描述文件

确认签名材料在当前执行用户下可访问,目标、配置与导出方式引用了正确条目。只记录证书名称、有效状态和匹配结果,不把证书私钥或完整描述文件上传到工单。

  • 核对项目的 Team、Bundle Identifier 与签名方式
  • 检查构建配置使用的描述文件是否与目标一致
  • 比较本地会话与 Runner 会话可见的签名身份
C

验证钥匙串访问上下文

CI 任务需要在非交互环境中访问签名材料时,应确认钥匙串已按流水线设计解锁,并限制自动化账户的访问范围。不要把解锁口令直接写入仓库脚本或普通日志。

  • 确认执行用户与导入签名材料的用户一致
  • 核对 Runner 启动方式是否改变会话上下文
  • 从日志中移除口令、令牌和私钥路径内容
D

隔离依赖缓存问题

先确认锁文件未变化,再分别检查 CocoaPods、Swift Package Manager、Node.js 或 Flutter 依赖。缓存异常时只清理与当前项目相关的目录,避免一次性删除整台主机上的团队共享缓存。

  • 保存锁文件哈希与依赖解析输出
  • 比较失败分支与成功分支的依赖版本
  • 记录缓存目录所有者、权限和当前体量
E

收集可复现的归档日志

保留完整命令、工作目录、Scheme、Configuration、SDK、Destination 和退出码。日志应覆盖首次出现错误前后的上下文,而不是只截取最后一行。

  • 使用独立结果目录保存本次构建输出
  • 记录触发方式、提交标识和 Runner 标签
  • 脱敏后再把关键片段附到控制台工单
F

先做最小命令验证

在进入完整归档前,先验证版本、项目结构和 Scheme 可见性。最小命令失败时继续修工具链;最小命令成功但归档失败,再转向签名、依赖和导出配置。

咨询构建配置
构建环境信息采集
sw_vers
xcodebuild -version
xcode-select -p
swift --version
xcodebuild -list -workspace <项目工作区>

命令不会读取项目密钥;提交结果前仍需检查输出中是否包含内部路径或仓库名称。

04 / 存储与并联

先确认容量用途,再检查挂载与任务边界

附加存储适合依赖缓存、构建中间文件、模型文件与短期素材处理。它不应替代项目自身的版本控制和长期归档策略。Thunderbolt 5 并联按每台计费,适合明确设计为多机协作的任务,不会自动把两个独立任务变成一个并行作业。

存储与并联附加项的公布价格
附加项 按天 按周 按月 按季 适合用途
+1TB SSD $2 $5.5 $10.1 $27.5 依赖缓存、构建产物与中等规模素材
+2TB SSD $4 $11 $20.2 $55 模型文件、批处理素材与较大的归档工作集
Thunderbolt 5 并联(每台) $1.7 $4.6 $8.6 $23.4 多机任务拆分、节点间高速数据协作
挂载检查

确认系统已识别目标磁盘

使用 diskutil list 查看磁盘与分区,再用 df -h 核对实际挂载点和可用空间。只看到设备但没有正确挂载点时,记录命令输出并提交工单,不要直接格式化未知磁盘。

空间监控

同时观察总容量与增长目录

归档失败前先检查工作区、DerivedData、依赖缓存和临时目录。构建日志中的“空间不足”可能来自系统卷或临时目录,不一定是项目目录所在卷。

任务拆分

按输入、执行和产物定义主机职责

多机工作流应明确哪台负责拉取代码、哪台执行构建或推理、产物写到哪里、失败后如何重试。避免多台主机同时修改同一工作目录或共享可变缓存。

磁盘与缓存检查
diskutil list
df -h
du -sh ~/Library/Developer/Xcode/DerivedData
du -sh ~/Library/Caches

大目录统计可能需要时间。先观察输出,不在未确认用途前删除目录。

05 / 账单与支付

按订单编号核对机型、周期与附加项

ZoneMini 所有订单均以 USD 结算,仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe)。实际可用网关以控制台返回为准。账单问题应围绕具体订单核对,不要只提供付款截图或模糊的交易时间。

结算币种 USD

机型、周期与附加项均按页面公布的美元价格计算,不进行页面端货币换算。

数字资产支付 USDT-TRC20

付款前核对控制台返回的网络、金额与订单信息。提交问题时提供订单编号和脱敏后的交易标识。

银行卡支付 Visa / Mastercard / Amex

银行卡交易经 Stripe 处理。遇到失败时记录控制台错误信息、发生时间和订单编号,不提交完整卡片资料。

为什么最终金额需要同时核对机型、周期和附加项?

订单金额由所选机型的周期价格,加上同周期的存储或 Thunderbolt 5 并联附加项组成。核对时应逐项比较订单中的机型名称、节点、天或周或月或季周期、附加容量和并联台数。

支付没有完成时应保留哪些信息?

保留订单编号、支付方式、发生时间、控制台显示的完整错误文本和脱敏后的交易标识。不要发送银行卡完整号码、验证码、钱包私钥、助记信息或账户完整密码。

已有订单应该通过什么入口查询?

登录控制台查看订单、实例与账单状态。若显示内容与付款记录不一致,从该订单上下文提交工单,并附订单编号,避免为同一问题创建多条缺少关联信息的请求。

06 / 工单提交

一张可处理的工单,需要六类上下文

工单目标不是证明“有问题”,而是让支持人员能确定影响范围、复现路径和期望结果。把关键信息集中在同一条请求中,可以减少来回追问。

01

节点

写明新加坡、日本(东京)、韩国(首尔)、香港或美国东部,并附控制台中的实例标识。

02

机型

写明 ZoneMini M4 Core、ZoneMini M4 Plus 或 ZoneMini M4 Pro,不只写“M4 主机”。

03

发生时间

提供含时区的时间范围,并说明问题是首次发生、稳定复现还是偶发出现。

04

复现步骤

从进入工作目录或发起连接开始,逐步写出命令、输入条件、实际结果与退出码。

05

脱敏日志

保留错误前后的上下文,移除仓库令牌、签名材料、内部地址和个人身份信息。

06

期望结果

说明正确行为应是什么,以及问题阻塞了连接、测试、归档、支付还是产物交付。

提交前删除敏感内容

不要上传证书私钥、仓库令牌或完整密码

签名证书只提供名称与有效状态;令牌只说明类型和权限范围;凭据问题只提供错误信息和脱敏后的标识。日志中的邮箱、仓库地址、内部主机名和文件路径也应按需要脱敏。

  • 账单问题附订单编号
  • 连接问题附命令输出与客户端环境
  • 构建问题附 Xcode 版本、Scheme、退出码和关键日志
  • 存储问题附挂载点、容量与相关目录增长情况
准备好诊断信息后

从订单上下文提交工单

已有订单优先登录控制台提交工单,并附订单编号、节点、机型、发生时间、复现步骤、脱敏日志和期望结果。售前选型可通过支持邮箱联系团队。