Apple Silicon 兼容性
核对依赖是否提供 arm64 版本,重点检查二进制工具、容器镜像、原生扩展和旧版脚本。若项目来自 Intel 环境,先列出必须替换或重新编译的组件。
file ./your-binary确认目标架构这份入门指南面向第一次使用 Oakmini 的开发者与 CI/CD 工程师。你将选择一台独享 Mac mini 物理节点,通过 SSH 或 VNC 连接,恢复 Apple Silicon 工具链,完成一次可复现构建,并把 self-hosted runner 接入现有流水线。
$ uname -m
arm64
$ sw_vers -productVersion
macOS ready
$ system_profiler SPHardwareDataType
Chip: Apple M4
$ xcodebuild -version
Xcode toolchain detected
$ git --version
git ready
✓ environment baseline recorded
先把兼容性、区域、周期和权限写清,能避免连接后才发现依赖架构不符、磁盘不足或流水线缺少仓库权限。建议把以下结果保存在项目的迁移记录中。
核对依赖是否提供 arm64 版本,重点检查二进制工具、容器镜像、原生扩展和旧版脚本。若项目来自 Intel 环境,先列出必须替换或重新编译的组件。
file ./your-binary确认目标架构在新加坡、日本(东京)、韩国(首尔)、香港、美国西部中选择。交互式 VNC 优先靠近主要操作者;无人值守构建则优先考虑代码源、制品存储与协作团队的位置。
ping / traceroute从实际办公网络测量按天适合短期验证,按周适合迁移冲刺,按月或按季适合持续开发与常驻 runner。先估算准备、构建、验收和产物导出的完整时间,不要只计算单次任务耗时。
day / week / month / quarter订单周期不可混用把仓库、依赖缓存、模拟器数据、归档和导出产物分别估算。构建目录应保留余量,避免依赖解析或归档阶段因磁盘耗尽而中断。长期任务还要定义缓存清理策略。
df -h连接后再次核验命令行任务准备 SSH 客户端与密钥;需要 macOS 图形界面时准备 VNC 客户端。确认本地网络允许对应连接,并记录公司防火墙、代理或 VPN 对连接路径的影响。
ssh -V先验证本地客户端确认代码仓库读取、依赖源访问、CI runner 注册、构建签名材料和制品上传所需权限。优先使用任务专用凭据,并为自动化流程设置最小可用范围。
read / build / upload逐项标注权限范围Oak Core 与 Oak Forge 都是独享 Mac mini 物理节点,非虚拟机。选择时看峰值内存、并发构建数量、工作集大小和产物体积,不以模糊的性能倍数作判断。
适合单项目调试、依赖验证、低并发自动化任务与短期迁移检查。若仓库、模拟器和归档占用较大,应在下单时增加存储。
适合多项目并行、较大依赖图、高内存编译、Apple Silicon AI 推理实验以及需要保留大量缓存和构建产物的任务。
| 下单字段 | 可选内容 | 选择依据 | 确认结果 |
|---|---|---|---|
| 计费周期 | 天、周、月、季 | 覆盖环境准备、任务执行、验收和产物导出 | 订单显示的起止范围符合计划 |
| 节点 | 新加坡、日本(东京)、韩国(首尔)、香港、美国西部 | 交互用户、代码源和制品目标之间的实际网络路径 | 区域名称与基线记录一致 |
| 存储扩展 | +1TB SSD 或 +2TB SSD | 仓库、依赖缓存、工作目录、归档和导出产物总量 | 预留清理与临时文件空间 |
| 并联选项 | Thunderbolt 5 并联(每台) | 仅在已规划的多节点工作流中选择 | 数量与拓扑逐台核对 |
从门户读取当前主机状态、地址、端口和凭据说明。不要根据旧订单或本地历史记录猜测参数。命令行维护使用 SSH,需要图形界面时使用 VNC。
ssh -p <PORT> <USER>@<HOST>
hostname
sw_vers
uname -m
system_profiler SPHardwareDataType
df -h
systemsetup -gettimezone
date
将输出保存到迁移记录。预期至少能确认主机名、macOS 版本、arm64 架构、芯片型号、磁盘容量、时区和当前时间。
主机应处于可连接状态。若状态仍在变化,先等待门户更新,不要连续重试凭据。
逐项核对主机地址、端口、用户名和连接方式。密钥文件只保存在受控设备中。
首次 SSH 连接记录指纹;后续若指纹异常变化,先停止连接并通过控制台工单核对。
使用 VNC 时先以适合当前网络的分辨率和画质连接,再检查键盘布局、剪贴板策略和休眠设置。
先建立可复查的基础环境,再安装项目依赖。不要直接复制旧机器的整个用户目录;优先迁移清单、配置和锁文件,以减少架构差异与无效缓存。
恢复软件清单后运行诊断,检查安装前缀和 shell 环境。Apple Silicon 常用路径应与脚本中的硬编码路径保持一致或完成替换。
brew bundle check && brew doctor设置提交身份、换行策略和凭据读取方式。先拉取一个只读测试仓库,确认网络和权限,再处理生产项目。
git config --list --show-origin根据锁文件恢复 Ruby、Node.js、Python 或其他运行时版本。记录版本管理器、全局工具和项目级版本,不依赖“最新版本”描述。
ruby -v; node -v; python3 --version确认当前选择的开发者目录、Xcode 版本、SDK 与命令行工具。多个项目需要不同版本时,为流水线显式记录切换步骤。
xcode-select -p; xcodebuild -version使用仓库中的锁文件恢复依赖,保留完整解析日志。若依赖需要编译原生扩展,确认输出架构为 arm64。
file ./path/to/native-extensiondate
hostname
sw_vers
uname -m
xcode-select -p
xcodebuild -version
git --version
brew --version
brew list --versions
ruby -v
node -v
python3 --version
df -h
首次构建的目标不是追求最短耗时,而是确认依赖解析、签名权限、输出目录和日志都可重复。先用固定提交版本测试,成功后再扩大到完整项目。
拉取指定提交或标签,确认子模块、私有依赖和大文件对象完整。记录仓库提交哈希,避免测试期间输入发生变化。
git rev-parse HEAD
使用锁文件恢复依赖,并把标准输出与错误输出写入日志。遇到架构问题时先定位具体二进制,不要反复清空全部环境。
command 2>&1 | tee dependency.log
确认构建进程能读取任务所需的签名材料和配置文件。自动化账户只授予对应项目与构建步骤需要的权限。
security find-identity -v -p codesigning
将 DerivedData、归档、测试结果和导出产物放入明确目录,避免与其他任务共享不受控的临时路径。
mkdir -p build logs artifacts
日志至少包含提交版本、Xcode 版本、SDK、命令、开始时间、结束时间和退出码。敏感字段在上传前完成脱敏。
echo "$?" > logs/exit-code.txt
在相同提交和配置下再次运行,确认依赖、路径和权限不会依赖首次会话中的临时操作。两次结果应可解释、可对照。
./scripts/verify-build.sh
xcodebuild \
-project Example.xcodeproj \
-scheme Example \
-configuration Release \
-derivedDataPath ./build/DerivedData \
build 2>&1 | tee ./logs/first-build.log
命令退出码为 0;日志可定位到固定提交与工具链版本;输出目录中存在预期产物;再次执行不依赖未记录的手动操作。
三条路径可以并行准备,但必须按共同基线汇合:固定仓库版本、记录工具链版本、定义 runner 标签,然后触发一项可重复验证的任务。
只迁移可解释的数据,不搬运无法追溯的历史状态。
从清单恢复工具,以版本输出确认结果。
让调度规则明确落到这台独享物理机。
环境能运行并不代表已经适合长期使用。完成首次构建后,应立即处理初始凭据、密钥保存、仓库范围和脚本中的敏感信息。
提交前搜索常见敏感字段,检查 shell 历史、环境文件、CI 配置和日志。发现明文凭据时应先撤销并替换,再清理文件历史。
限制私钥文件权限,删除不再使用的公钥,并为自动化连接配置可识别的密钥名称与用途记录。
chmod 600 ~/.ssh/private_key
保留时间、命令、版本、退出码和错误栈;删除访问令牌、私钥内容、签名材料原文及其他可直接用于授权的信息。
验收应基于可重复结果,而不是“当前窗口能用”。建议断开会话后重新连接,并从干净 shell 中再跑一次关键命令。
主动断开 SSH 与 VNC,再使用已保存的正确参数连接。主机指纹、用户名、端口和图形会话均符合记录。
从锁文件恢复依赖,命令退出码为 0;原生组件架构正确;安装日志已保存且不含敏感信息。
固定提交与工具链版本下完成构建,输出目录明确,第二次执行不依赖未记录的手动操作。
归档、测试结果或其他目标产物能从指定目录导出,文件名称、版本和校验方式满足团队约定。
self-hosted runner 状态在线,标签能够匹配目标任务,并且不会接收未授权项目的作业。
环境基线、依赖日志、构建日志、退出码和产物路径均已归档,敏感字段完成脱敏。
能够在门户核对主机状态、订单信息和管理入口。所有节点全年 365 天正常运行,不设置计划停机时段。
进入门户查看当前可用节点,选择 Oak Core 或 Oak Forge、计费周期与存储选项。下单后按本页步骤完成连接、工具链恢复与验收。