先确认设备身份,再开始工作
领取一次性交付信息,核对区域、地址与主机指纹,完成首次密码更新并保存本地核验记录。
这里不是概念说明,而是一套可逐项执行的操作路径。先完成独享物理节点的身份核验和安全设置,再准备 Xcode、签名材料与自动化任务;遇到异常时,按统一口径收集网络输出和构建日志。
输入命令、工具或现象,例如“主机指纹”“Archive”“DNS”或“密码”。也可以按主题缩小范围;筛选只影响下方指南卡,不会隐藏完整操作章节。
领取一次性交付信息,核对区域、地址与主机指纹,完成首次密码更新并保存本地核验记录。
确认 Xcode 与命令行工具路径,隔离签名钥匙串,并把源码、缓存、归档和导出目录分开。
固定代码版本、恢复缓存、装载签名、执行归档、导出产物,再对文件和日志做机器可读校验。
分别检查连通性、路径、解析与目标端口,不用单次 ping 或截断日志代替完整诊断材料。
首次登录即更新密码,远程离开前锁定图形会话,提交工单前移除密钥、令牌和签名材料。
尝试缩短关键词,或切换到“全部”。若问题与具体订单或节点有关,请登录控制台提交包含时间和完整日志的工单。
RunnerVM 交付的是独享物理 Mac mini,不是虚拟机。首次操作的重点不是尽快运行命令,而是确认你连接到订单对应的设备,并把初始访问方式替换为团队自己的安全设置。
核对订单标识、节点区域、连接地址、SSH 端口、VNC 参数和初始用户名。不要通过聊天转发完整凭据;团队协作时,只把必要字段交给实际操作者。
将控制台显示的主机指纹与首次 SSH 提示逐字符比较。若算法或摘要不一致,停止连接并提交工单,不要用删除本地 known_hosts 记录的方式绕过异常。
使用订单给出的主机、端口和用户名连接。登录后先执行 sw_vers、uname -m 与 hostname,把系统版本、Apple Silicon 架构和设备名称写入交付记录。
在本地 VNC 客户端中填写控制台给出的地址、端口和密码。首次只使用默认分辨率验证键盘、指针和窗口缩放,确认会话稳定后再调高画面尺寸。
立即更新初始密码,检查 SSH 公钥和管理员权限,仅保留任务需要的访问。完成后重新建立 SSH 与 VNC 会话,确认新凭据有效,再开始导入项目或签名材料。
下面按一次常见构建任务的顺序展示 SSH、xcodebuild 和 fastlane 输出。命令中的主机、工作区、Scheme、导出配置和 lane 都应替换为项目真实值,不能直接复制后假定适用于所有仓库。
$ ssh -p 22 runner@10.0.0.12
Host key fingerprint: SHA256:…
$ sw_vers
ProductName: macOS
$ uname -m
arm64
$ xcodebuild archive \
-workspace RunnerApp.xcworkspace \
-scheme RunnerApp \
-archivePath build/RunnerApp.xcarchive
** ARCHIVE SUCCEEDED **
$ bundle exec fastlane ios build
[08:42:16]: Resolving signing settings
[08:43:02]: Archive completed
[08:43:11]: Export verified
[08:43:11]: fastlane finished successfully
环境问题通常不是“Xcode 能不能打开”,而是图形界面选择、命令行路径、项目声明与签名上下文是否一致。按下面顺序检查,能更快区分工具链问题和项目问题。
执行 xcodebuild -version 和 xcode-select -p。若节点安装了多个版本,先明确项目要求,再切换开发者目录,避免图形界面与自动化任务使用不同版本。
执行 xcrun --find xcodebuild、xcrun simctl list 和一次无签名的项目解析。若工具不存在或 SDK 列表异常,先修复工具链,不要直接修改项目文件。
将自动化任务使用的证书放入独立钥匙串,设置明确的解锁步骤和最小访问范围。不要把密码写入仓库、脚本参数或构建日志。
记录证书名称、有效期、团队标识和描述文件 UUID,确认 Bundle Identifier 与目标配置匹配。导入后用 security find-identity -v -p codesigning 核验可用身份。
将源码、依赖缓存、DerivedData、Archive、Export 和日志分开。每次任务使用唯一归档路径;共享缓存只存放可重建内容,避免把签名材料混入缓存。
自动化的目标不是把本地脚本搬到远端,而是让输入、环境、签名和输出都能复现。每个阶段都应产生明确记录,失败时可以知道问题发生在哪一步。
使用提交哈希或受保护标签,不依赖会继续移动的分支头。记录子模块版本、Git LFS 状态和仓库清洁状态。
git checkout --detach <commit>
缓存键至少包含锁文件摘要、工具版本和架构。缓存未命中时正常安装,不把“必须命中缓存”当作构建成功条件。
bundle check || bundle install
解锁任务专用钥匙串,导入匹配的描述文件,验证可用签名身份。任何密钥和密码都不得写入标准输出。
security find-identity -v -p codesigning
显式指定工作区、Scheme、Configuration、Destination 和归档路径。保存完整日志与 xcodebuild 退出码。
xcodebuild archive …
将导出配置纳入版本管理,但不包含秘密。导出目录与归档目录分离,避免重跑时覆盖原始 xcarchive。
xcodebuild -exportArchive …
检查文件存在、大小、摘要、签名信息和任务退出码,把产物标识与提交版本、Xcode 版本及日志路径关联。
shasum -a 256 build-output
远程桌面适合完成首次图形设置、检查 Xcode 界面状态和处理需要视觉确认的任务。构建是否持续运行,不应依赖本地 VNC 窗口是否保持连接。
严格使用控制台显示的地址、端口、用户名与密码。若客户端支持连接配置文件,也不要把密码写入可同步的明文文件。
首次连接使用默认尺寸。确认交互稳定后再逐级提高分辨率;出现输入延迟时,先降低色深和画面尺寸,再检查网络路径。
离开设备前锁定图形会话,不以关闭 VNC 客户端代替锁屏。团队换班时应撤销不再需要的访问权限。
持续构建应运行在 CI runner、launchd、tmux 或其他可恢复会话中。先做一次主动断开测试,确认任务和日志继续写入。
确认订单区域、设备名称和当前登录用户。
不要只依赖屏幕输出判断构建是否仍在执行。
断开后通过 SSH 检查进程、日志增长和退出状态。
移除临时公钥、一次性文件和不再需要的凭据。
网络问题需要明确“从哪里、在什么时间、访问哪个目标、得到什么完整输出”。单张截图或一句“连接很慢”无法区分本地网络、跨境路径、DNS、端口策略和目标服务状态。
连续发送固定数量的数据包,保留最小、平均、最大延迟和丢包率。不要用一次响应代表整段连接质量。
ping -c 20 target-host
从出现问题的源网络执行,保留完整跳数。中间节点不响应不等于链路中断,应结合最终目标是否可达判断。
traceroute target-host
记录当前 DNS 服务器、返回地址和查询耗时。若不同网络结果不一致,同时提交两侧输出,不要手工改写结果。
dig target-host
分别测试 SSH 或项目实际使用的端口。连接成功只说明 TCP 可达,不代表身份验证和上层协议已经完成。
nc -vz target-host 22
提交前移除密码、私钥、令牌和业务数据,但不要删掉时间戳、错误码、路径跳数或命令参数。
售前问题、一般咨询和不关联具体订单的说明可以发送邮件;涉及节点、构建失败、连接异常或账务记录的问题,应登录控制台提交工单,以便关联订单和持续查看处理状态。
按首次连接、环境准备、自动化或网络排查选择路径。记录已经执行的步骤、命令、结果和首次出现异常的位置。
提供订单标识、节点区域、问题时间、复现步骤、预期结果、实际结果和脱敏后的完整日志。构建问题还应写明提交版本与 Xcode 版本。
选择与问题最接近的分类,把日志作为附件或正文代码块提交。一个工单聚焦一个问题,避免把网络、构建和账务异常混在同一条记录里。
复测后继续回复原工单,补充新的时间、命令和输出。紧急事件同样通过控制台查看处理状态,不重复创建多个相同工单。
适合连接失败、节点异常、构建环境、账务核对和需要持续跟进的问题。工单可关联订单,并保留完整处理时间线。
适合售前选型、流程确认、安全报告和不需要关联节点的说明。邮件主题中写明问题类别,正文避免包含密码或密钥。
联系页按售前、技术、账务和安全事项列出必填信息,适合在发送邮件前检查材料是否完整。
以下答案用于区分设备交付、连接方式、构建任务和支持材料,减少在错误方向上反复尝试。
不是。订单对应独享物理 Mac mini 节点,设备规格为 Runner M4:Mac Mini M4、16GB RAM、256GB SSD。远程连接只是访问方式,不会把服务变成共享虚拟资源。
是否继续取决于任务如何启动。CI runner、launchd、tmux 或独立后台进程通常不依赖 VNC 窗口;直接绑定图形会话的交互任务可能受会话状态影响。正式使用前应主动断开一次并检查进程、日志和退出状态。
准备可用的 SSH 与 VNC 客户端、团队内部的凭据保管方式、项目要求的 Xcode 版本、签名材料清单和一个不会写入仓库的秘密管理流程。领取交付信息后,先核对主机指纹和设备身份。
不会自动改变。Runner M4 按天、周、月或季下单,订单周期与处理状态以控制台记录为准。如需核对具体订单,请在控制台提交关联该订单的工单。
先导出需要保留的归档、产物和脱敏日志,再清理源码工作区、临时签名钥匙串、描述文件、临时公钥、访问令牌和项目缓存中的敏感信息。不要把明文凭据保留在 shell 历史或脚本参数中。
优先从实际办公网络或 CI 来源测试目标区域的延迟与路径,再结合团队时区和产物传输方向选择。Runner M4 可在新加坡、日本东京、韩国首尔、香港和美国东部五个节点订购,实际可用性以控制台实时返回为准。
选择 Runner M4 和目标区域,完成订单后按本页步骤核验连接、准备工具链并运行第一条可重复的构建任务。