RC 完整发布演练
2026 年 8 月 28 日完成了一次 NON_PRODUCTION RC 发布演练。演练使用合成的双架构候选输入,调用真实候选包聚合器,随后检查候选索引、证据文件和 6 个计划上传到不可变源站的文件字节。仓库中的发行契约与测试套件也在同一次演练中执行。
这次演练的结论是 completed-non-production,不是 GA 通过。它没有读取生产私钥、Apple 凭据或生产源站配置,没有执行真实 Developer ID 签名、公证、上传、原子 pointer 切换或公开发布,也没有产生可供用户安装的真实产物。所有演练阶段的 productionCredit 均为 none。
可以查看机器可读演练记录、RC 演练 Schema和发行清单页面。
这次演练验证了什么
- 合成输入只能通过显式的
--fixture-only模式进入演练,不能被误当作真实候选包; - 候选包聚合、索引绑定、大小与 SHA-256 复核按正式契约执行;
- Release Manifest、latest pointer、平台矩阵和平台验收契约被固定到演练记录;
- 发行测试输出被作为 test-only 证据保存并校验;
- 候选包中不得出现运行时会接受的正式 Manifest、签名或 latest 元数据;
- 发布、生产凭据和生产源站权限始终保持关闭。
演练发现并修复的问题
演练发现 Artifact Runtime 的 lockfile 哈希发生变化,但证据清单仍固定旧哈希。证据文件与运行时清单已重新绑定,回归测试随后通过。
演练还发现原流程存在顺序循环:构建 macOS 候选包之前要求产品素材达到 GA,而产品素材 GA 又必须绑定最终候选索引、安装包哈希与平台验收。流程已拆成两个阶段:先构建并验收不公开的候选包;真实产品素材再绑定候选字节完成复核;只有 promotion 阶段才要求素材 GA,并且必须在读取生产私钥或访问生产源站之前通过。
为什么仍然不能发布
以下事实仍然缺失,因此生产状态保持 blocked:
- 可验证的规范 Git 源码身份、干净发布树和正式签名 tag;
- 受保护的原生 macOS arm64 / x64 runner、真实 Developer ID 与 Apple 公证凭据;
- 与同一候选版本绑定的真实安装、首次启动、升级、恢复与平台验收;
- 最终 RC 的真实双语产品素材、权利复核与 14 天 soak;
- 真实发行主体、品牌清权、正式域名及支持、安全、隐私和法律联系渠道;
- 不可变 HTTPS 源站、提供商级 CAS / 原子发布适配器和最终回读证据。
在这些门禁全部关闭之前,下载、自动更新和“已发布”“生产就绪”“平台验收完成”等 Claim 都保持禁用。