05
验收步骤与条件分支:不通过就回退
第一步,列任务清单:标出编译、单元测试、Simulator、真机自动化、签名、公证或发布任务,并注明是否依赖外接设备、密钥或内部网络。
第二步,锁定版本组合:记录 macOS 主机与来宾、Xcode、SDK、CI Agent、依赖管理和构建脚本版本。Xcode 系统要求会随发布版本更新,发布前重新核对运行系统与 SDK 支持关系,不用当前 Beta 或 RC 的条件代替未来正式版结论。
第三步,复核许可与交付条款:保存对应 macOS 协议原文,检查实例和租赁安排;遇到边界含糊时交法务确认,未确认前不进入生产签名流程。
第四步,测试隔离证据:检查宿主机管理员权限、共享目录、网络访问、凭证存储、工作区清理和日志保留;验证普通任务无法读取发布密钥。
第五步,运行同负载 A/B:在虚拟 Mac 和实体 Mac 上执行相同流水线,保留环境、日志、排队与重试数据;测试并发和故障恢复时记录实际结果,不从 CPU 配额推算吞吐。
第六步,按验收矩阵决定采购:失败项明确归属、整改人和复测条件;未通过的任务退回实体节点或保留为隔离试点。
- 若任务可丢弃、可重复创建,不依赖真机或生产凭证,且许可与镜像均确认,则选虚拟 Mac 试点。
- 若任务需要外接设备、真实设备行为或生产发布身份,则选实体 Mac 构建机,并单独验收签名权限。
- 若虚拟节点已通过同负载性能、隔离和恢复测试,但设备测试或签名仍有实体依赖,则选混合部署:验证任务进入虚拟池,真机与发布任务保留在实体池。
- 若许可、macOS 27 镜像兼容或故障恢复证据任一未通过,则不将虚拟 Mac 纳入生产 CI,回退到已经验收的实体节点。
| 验收项 |
通过证据 |
未通过时的处理 |
| 任务兼容 |
每类任务在目标环境实际运行并保存结果 |
从生产路由移除该任务 |
| 许可确认 |
对应版本协议与租赁/共享条款已复核 |
暂停虚拟化生产用途并提交法务 |
| 性能与并发 |
同负载对照记录可复现 |
不承诺吞吐或扩容能力,继续试点 |
| 隔离与签名 |
权限、凭证、清理与审计测试通过 |
普通验证和发布凭证分离,阻断签名权限 |
| 故障恢复 |
宿主或来宾故障演练留有记录 |
使用已验证的实体节点承接生产任务 |
| 采购决定 |
对应任务池、责任人和回退路径明确 |
暂缓扩容或采用混合架构 |