商店发布¶
共享发布基础层使各商店之间的身份、披露声明、分发策略、资源和工件来源保持一致。它不会发布或预留上架条目。
执行顺序和平台工作者验收标准见
STORE-PUBLISHING-HANDOVER.md。
规范输入¶
store/metadata.json:产品身份、上架文案、要求、权限和商店分类。store/privacy.json:本地数据和网络传输披露。store/compliance.json:捆绑和下载组件的审查台账。store/assets.json:规范图标和截图来源。config/distributions.mjs:每个分发的不可变运行时策略。
在任何平台打包工作之前,先运行共享检查:
平台工作者还必须使用其目标运行验证器,例如 --distribution=mac-app-store。失败是提交阻断项,而不是削弱共享策略的理由。
平台交接¶
| 工作者 | 目标 | 起始包 | 更新负责人 | 首项阻塞工作 |
|---|---|---|---|---|
| Windows | microsoft-store |
现有已签名 NSIS EXE | VoiceStudio | 运行已签名包工作流,预留 Partner Center 身份,私下提交并完成认证 |
| Linux | snap-store |
新建受限 Snap | Snap Store | 隔离接口、可写路径、运行时安装和商店审查 |
| macOS | mac-app-store |
新建沙盒化 MAS 应用 | Mac App Store | 授权、沙盒文件访问、捆绑可执行文件/运行时许可,以及 StoreKit 收据行为 |
Linux 实现与证据检查清单位于 Snap Store 操作手册。
构建顺序应为 Windows、Linux,然后是 macOS。Windows 复用当前已签名的安装程序和更新程序契约;Linux 引入隔离机制;macOS 的架构变化最大,因为下载的可执行代码不属于已批准的共享基础层。
每个平台工作者只负责自己的包配置、平台 CI、商店专属资产和提交操作手册。对共享身份、隐私、权限或合规记录的更改必须更新规范文件,而不是复制到仅限平台的文档中。Electron 仍然是唯一的 UI 和桌面外壳;不得恢复任何 Tauri 路线。
Microsoft Store 的打包与提交交接在 .github/workflows/microsoft-store.yml 中实现;操作步骤和待处理的负责人工作在 store/microsoft-store.md 中。
Mac App Store 的沙盒目标和私有打包工作流已在 electron/electron-builder.config.mjs 和 .github/workflows/mac-app-store.yml 中搭建好。该工作流仍受捆绑运行时合规门禁阻塞,并且永远不会提交到 App Store Connect。当前阻塞项和负责人操作见 Mac App Store 操作手册。
工件与发布契约¶
打包工作流会在安装程序旁边写入 store-artifact-manifest-<platform>-<arch>.json。它记录源版本和提交、分发策略、合规清单摘要、工件大小和 SHA-256 摘要。商店工作者必须使用其明确的分发目标生成该文件,并在提交前附加平台签名验证结果。
在所有地方使用相同的生命周期:
构建 -> 验证 -> 提交 -> 批准 -> 排期 -> 发布 -> 核验
只有负责人提供或授权商店账户、法律协议、支付/税务信息、签名凭据、年龄分级和最终发布。未经该批准,绝不提升应用版本、提交工件或发布上架条目。商店渠道只有在完成首次经验证的生产发布后,才会成为受维护的发布渠道。
基础层未决阻塞项¶
- 记录捆绑的
uv二进制文件的确切摘要和上游声明。 - 在捆绑之前,解决已锁定的 Python/运行时再分发记录,然后才能进行捆绑。
- 除非每个模型许可证都单独获得批准,否则将默认模型权重保留在商店包之外。
- 在捆绑并批准每个可执行组件之前,Mac App Store 目标仍处于阻塞状态;且不能在那里启用运行时代码下载。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 om/VoiceStudio