先说影响,再贴日志
明确是整台节点无法访问、只有图形桌面异常,还是单个构建任务失败。节点仍可 SSH 登录时,应注明这一点,便于把网络问题与应用问题分开。
配置咨询写明机型、周期、节点和目标工作流。账单问题附订单号、支付方式、金额与支付参考信息。服务团队会根据工单上下文排查,不承诺未经核实的固定恢复时间。
公开售前与无法登录的情况,可发送邮件至 support@armvnc.com。不要把密码、私钥、令牌或签名文件作为附件发送。
从交付凭据到 archive,按现象查步骤。已有订单的连接、账单与可用率问题,请登录控制台提交工单,让排查记录跟着同一台节点走。
节点不可达优先处理。咨询机型或团队部署,也可以发送邮件至 support@armvnc.com。
交付对象是一台独享 Apple Silicon 物理节点,非虚拟机。付款记录、交付状态与连接凭据都在控制台核对,不需要在邮件里来回传递密码。
付款确认后,登录控制台,找到对应订单及其节点详情,查看节点 IP、用户名与初始密码。先确认订单中的机型、节点和周期与付款时的选择一致,再开始连接。交付进度以控制台实时返回为准。
记录订单号、机型与节点代号,避免用另一台节点的旧凭据连接。
复制完整 IP 与用户名,检查是否误带空格;不要把初始密码粘贴到公开日志。
登录成功后修改当前用户密码,并在自己的密码管理工具中保存。
ssh -p 22 USER@NODE_IP
passwd
将 USER 与 NODE_IP 替换为控制台显示的值。若详情中端口不同,使用详情中的实际端口。SSH 输入密码时通常不显示字符,这是正常行为。
先区分“已发起付款”和“平台已确认到账”。银行卡支付完成页面、链上转账提交记录,都不能替代订单里的到账状态。刷新对应订单,核对付款金额与交易状态,不要因为页面尚未更新就重复付款。
如果付款记录与订单状态不一致,在控制台工单中附订单号、支付方式、金额、付款时间和时区。USDT-TRC20 同时提供交易哈希;银行卡提供支付回执中的参考信息即可,不要提供完整卡号、安全码或短信验证码。
Arm Line M4 的规格是 M4 / 16GB / 256GB;Arm Grid M4 Pro 的规格是 M4 Pro / 64GB / 2TB。两档均在新加坡、日本东京、韩国首尔、香港、美国东部这 5 个节点在售,实际可用状态以控制台实时返回为准。
交互操作优先考虑团队到节点的网络路径;无人值守构建同时考虑代码、依赖与产物传输路径。发现订单与预期不同,应先在工单中核对,再上传项目与签名材料。
先保留完整报错,再检查本地网络、端口与节点状态。下面的命令使用示例变量;地址、账户与端口以控制台中的连接信息为准。
先断开重复的远程会话,再重新连接。确认客户端连接的是当前节点,检查 macOS 是否处于锁屏或用户切换界面。如果 SSH 仍可登录,先保存构建日志,不要直接强制重启正在执行 archive 的节点。
能够进入图形界面时,检查“系统设置 → 通用 → 共享”中的屏幕共享及允许访问的用户。不同 macOS 版本的项目位置可能略有不同。可在 SSH 中查看当前控制台用户,帮助判断是否存在图形会话:
stat -f '%Su' /dev/console
如果黑屏持续,工单注明“SSH 是否可达”、黑屏前的操作、客户端名称与版本,并附不含密码的截图。不要为了排查而反复结束系统进程。
先在 VNC 客户端将显示模式设为“适应窗口”,区分客户端缩放和远端实际分辨率。远端可在“系统设置 → 显示器”中检查当前显示选项。先用 1920 × 1080 作为排查起点,再按客户端屏幕和网络情况调整。
跨地域连接时,优先降低分辨率与色深,并提高压缩级别;先确认文字输入和菜单操作流畅,再提高画质。构建任务本身不依赖远程桌面画质,不需要为观察日志一直保持高分辨率图形会话。
“超时”通常意味着网络路径或端口没有得到响应;“拒绝连接”表示已收到拒绝,需检查端口和服务;“认证失败”则应核对用户名、密码或密钥。先在本地终端检查,再把必要的日志片段附到工单:
nc -vz NODE_IP 22
ssh -vv -o ConnectTimeout=10 -p 22 USER@NODE_IP
如果公司网络限制出站连接,可换一条网络重试,记录两次结果。日志中保留报错行即可,隐藏实际公网 IP、用户名、私钥路径等敏感信息。不要把私钥文件发送给服务团队。
整机重装后主机指纹可能改变。必须先在控制台核实节点身份;不要在身份未确认时直接忽略主机密钥警告。
在远端“系统设置 → 键盘 → 文本输入”检查输入源,再在“修饰键”中核对 Command、Option 与 Control 的映射。Windows 键盘与 Mac 键盘的修饰键位置不同,先在普通文本编辑器里测试符号,再输入终端命令。
若只有远程客户端出现问题,检查其键盘布局和快捷键转发设置。剪贴板不同步时可重新连接并检查客户端共享剪贴板选项;不要用公开剪贴板服务中转密码或签名材料。
先让同一份代码在明确的 Xcode 版本下构建,再处理签名。团队已有的证书、描述文件与签名流程应按自己的权限策略管理,不要将签名材料写入仓库。
先读取当前开发者目录和版本。图形界面打开了某个 Xcode,不代表命令行使用同一个版本。全局切换会影响同机任务;共享构建流水线更适合在单个任务中设置 DEVELOPER_DIR。
xcode-select -p
xcodebuild -version
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
xcodebuild -version
路径必须指向节点上实际存在的 Xcode。需要全局切换时,先暂停依赖当前工具链的任务,再执行 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer。首次使用的组件与许可要求应先在交互会话完成检查。
核对 runner 的执行用户与证书所在钥匙串。图形会话中的登录状态不一定延续到后台服务;重启后也可能需要按流水线策略解锁专用构建钥匙串。以下命令用于查看签名身份和交互解锁:
security find-identity -v -p codesigning
security unlock-keychain "$HOME/Library/Keychains/build.keychain-db"
示例中的构建钥匙串需要事先存在。无人值守任务应从 CI 的机密变量读取必要凭据,关闭命令回显,并限制证书访问范围。排查时只提供错误代码和已脱敏日志,不发送钥匙串密码、私钥或证书导出密码。
先沿用项目已经验证过的签名方案。自动签名适合有受控自动化授权的流程;手动 profile 适合希望固定证书、描述文件及导出配置的发布线。不要在同一次排查中同时切换签名策略和 Xcode 版本。
手动配置时逐项核对 Bundle Identifier、Team 标识、证书有效期、profile 类型与导出方式。多 target 工程还要检查扩展的标识与权限。把“编译失败”和“导出失败”分开记录,工单附失败阶段、错误原文和脱敏后的导出配置。
GitHub Actions self-hosted runner 与 GitLab Runner 都要核对执行用户、工具链路径和机密变量。先用最小诊断任务确认环境,再恢复完整流水线。
先在代码托管平台确认 runner 注册仍有效,再核对节点上的服务状态、仓库绑定和任务标签。GitHub Actions 的以下命令应在 runner 安装目录执行;GitLab Runner 命令需要相应程序已安装:
./svc.sh status
gitlab-runner status
launchctl list | grep -i runner
使用 launchd 托管的服务,应核对服务定义中的执行用户、工作目录与日志路径。开机自启与用户登录后启动不是同一件事,配置后要在没有交互终端的条件下验证。不要在工单中粘贴 runner 注册令牌。
先在失败任务中输出非敏感环境信息,确认实际执行用户、当前目录、PATH 与 Xcode 版本。后台服务通常不会自动读取交互 shell 的全部配置。
whoami
pwd
printf '%s\n' "$PATH"
xcodebuild -version
将依赖路径显式写入任务环境。并发任务为工作区、DerivedData、归档目录与临时文件设置独立路径;先以单任务完成一次干净构建,再逐步提高并发。不要让两次发布同时修改同一份导出目录或签名资源。
仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),全部以美元(USD)结算。实际可用网关以后端接口返回为准。
网络务必选择 TRC20。逐字核对当前订单给出的收款地址、应付金额与付款提示,不要复用其他订单或历史截图里的地址。发起转账前确认钱包已选择正确网络。
链上确认通常按分钟级等待,可先留出数分钟观察交易状态;实际时间取决于网络拥堵、钱包广播与支付网关所需确认数,不是固定到账承诺。以订单显示的确认结果为准,转账提交不等于平台已经确认到账。
交易已经确认而订单仍未更新时,提交订单号、交易哈希、转账金额、时间与时区。不要重复转账,也不要在工单中提供钱包助记词或私钥。
Visa / Mastercard / Amex 通过 Stripe 处理。付款后返回控制台检查对应账单状态,核对 USD 金额。若银行显示交易记录但账单状态不一致,先保留回执并提交工单,不要连续重复提交付款。
提供订单号、支付时间与时区、金额、失败提示或支付参考编号。截图应遮盖完整卡号、安全码和个人敏感信息。服务团队不需要你的短信验证码。
租用提供天、周、月、季四种周期。开始时间、结束时间、续费动作与订单状态,以控制台对应订单和账单显示为准;不要用本地发起转账的时间自行推算服务截止时间。
到期前检查订单中的续费状态与应付账单,不要假定未付款也会延续服务。临时停用 runner 或断开 SSH 不代表退租。需要调整配置时先通过工单确认可执行方案,再安排项目迁移与构建暂停。
退租后整机数据会被擦除。应在服务结束前迁出源码、归档产物、必要日志与自己的配置备份,核对备份能否恢复;不要把节点磁盘当作唯一副本。
同时解除 runner 注册、撤销节点上使用过的自动化令牌,并按自己的安全策略处理签名材料。若要接续另一台节点,先完成新节点验证,再切换发布任务。
所有节点全年 365 天正常运行。以下是服务承诺及申请说明,不是历史监测报表;发生问题时,请先报障并保留时间记录。
30 天约 43 分钟停机额度。
按 30 × 24 × 60 × 0.1% 换算,未取整为 43.2 分钟。这是承诺阈值的时间表达,不是预设会发生的中断。
当月节点可用率低于 99.9% 时,按受影响时长折算为服务时长补偿。
登录控制台提交工单,附节点代号与故障时段。请标明时区,并区分首次发现时间、最后一次成功连接时间与恢复时间,方便核对影响范围。
注明订单号、节点代号、连接方式和完整现象,避免等待月底再第一次报障。
提供开始与恢复时间、时区、已尝试的排查步骤和脱敏日志。
在同一工单中申请服务时长补偿,并核对处理结果及对应订单记录。
不可抗力与用户自身操作造成的不可达,按服务约定核对。单次本地网络失败不直接等于节点中断;可补充另一条网络的连接结果,帮助区分故障位置。
节点不可达优先处理,配置咨询按队列处理。优先级按实际影响核对,不按重复提交次数排序;同一问题请在原工单中补充信息,保留连续记录。
明确是整台节点无法访问、只有图形桌面异常,还是单个构建任务失败。节点仍可 SSH 登录时,应注明这一点,便于把网络问题与应用问题分开。
配置咨询写明机型、周期、节点和目标工作流。账单问题附订单号、支付方式、金额与支付参考信息。服务团队会根据工单上下文排查,不承诺未经核实的固定恢复时间。
公开售前与无法登录的情况,可发送邮件至 support@armvnc.com。不要把密码、私钥、令牌或签名文件作为附件发送。
不适用的字段可删除。日志只保留必要的报错片段,敏感值先脱敏。
订单号:
节点代号 / 机型:
问题类型:连接 / 构建 / 账单 / 补偿
影响范围:全部连接 / 仅图形桌面 / 单个任务
首次发现时间与时区:
最后一次正常时间:
恢复时间(如已恢复):
完整现象与报错:
SSH 是否可达:
客户端 / 系统 / Xcode 版本:
已尝试的排查步骤与结果:
近期配置变更:
脱敏日志或截图:
希望协助的事项: