Microsoft Store 发布手册¶
状态:实现已完成;Partner Center 身份、已签名 CI 验证和认证仍待完成。
- 分支:
feat/microsoft-store - 基线:
feat/store-publishing-foundation(位于e8224990) - 最终提交:已合并拉取请求中记录的分支头
包契约¶
VoiceStudio 使用 Microsoft 的未打包 Win32 EXE 路径。Store 包是现有 NSIS 安装程序的单独命名构建:
VoiceStudio-MicrosoftStore-<version>-win-<arch>.exe
它嵌入了 VOICESTUDIO_DISTRIBUTION=microsoft-store,仍然是独立安装程序,接受静默 /S 开关,并保持 VoiceStudio 的应用更新程序启用。直接安装程序、名称和更新源均保持不变。
Microsoft 要求使用提交后不可替换的带版本 HTTPS 包 URL、静默离线安装程序,以及安装程序和已安装 PE 文件上的受信任 Authenticode 签名。Partner Center 提交还要求至少一张截图和 1:1 盒装封面图。当前要求:
所有者先决条件¶
在暂存包 URL 或提交之前:
- 在 Partner Center 中将
VoiceStudio保留为 EXE/MSI 产品。 - 确认卖家/发布者身份为
Yupcha Softwares Private Limited。 - 将
ELECTRON_WINDOWS_CSC_LINK和ELECTRON_WINDOWS_CSC_KEY_PASSWORD添加为存储库机密。证书必须链接到 Microsoft 受信任根证书计划中的 CA,且其使用者必须与法定发布者匹配。 - 批准年龄分级、生成式 AI 和语音克隆声明、销售区域、定价和发布时间。
切勿将凭据或导出的证书放入存储库或工作流产物中。
构建并验证¶
运行 Microsoft Store package 工作流。在迭代期间保持 stage_package_urls 禁用。release_tag 可为空用于分支验证;生产暂存需要精确的 v<package-version> 标签。
对于 x64 和实验性 ARM64,该工作流:
- 验证共享的
microsoft-store策略; - 使用 Store 分发标识构建现有的 NSIS 目标;
- 验证安装程序以及每个打包的
.exe、.dll、.nodeAuthenticode 签名; - 检查安装程序签名者和“添加/删除程序”中的发布者是否与规范法定发布者一致;
- 执行静默全新安装,启动已安装的设置界面,然后静默卸载;
- 在 x64 上,安装上一直接发布版并就地升级到 Store 构建,确认当前只有一个卸载条目并且启动正常;
- 写入来源和 Authenticode 证据;
- 将规范元数据、盒装封面图和截图汇总到 Partner Center 交接产物中。
下载 microsoft-store-partner-center-handoff 并保留:
microsoft-store-submission.json;store-artifact-manifest-win32-<arch>.json;authenticode-win32-<arch>.json;- 已签名的 EXE 包和
listing/资源。
ARM64 环节是实验性的,不会阻塞 x64。除非该环节对提交的版本通过,否则不要在 Partner Center 中提供 ARM64。
暂存并提交¶
在匹配的 GitHub 发布存在后,存储库所有者可以使用精确的标签和 stage_package_urls=true 重新运行该工作流。该工作流会将 Store 命名的安装程序添加到该发布中,并拒绝覆盖现有资源。确认 microsoft-store-submission.json 中的每个 URL 下载的字节与其 SHA-256 摘要匹配。
在 Partner Center 中:
- 选择 EXE 包类型和匹配的 x64/ARM64 体系结构;
- 输入不可变的包 URL 和
/S安装程序参数; - 使用
store/metadata.json、store/privacy.json和生成的列表资源,而不是维护单独的副本; - 在所有者批准下完成权限、AI、语音克隆、年龄分级和隐私回答;
- 私下提交,并在此处记录提交 ID 和审核结果。
没有任何存储库工作流会提交或发布 Partner Center 列表。
验收与回滚¶
在生产环境发布之前,手动验证干净安装、从上一直接发布版升级、首次运行时的运行时设置、应用程序启动、应用内更新、静默卸载,以及在受支持的 Windows 版本上的单个“添加/删除程序”条目。记录认证结果和已安装的包 URL。
对于失败的提交,修复分支,并在所有者批准的版本升级后暂存一个更高的新版本;绝不要替换已认证 URL 的字节。在发布之前,在 Partner Center 中撤回提交。发布之后,在那里移除可用性或将其下架,同时保持不可变的安装程序 URL 和直接下载发布完好无损。
生命周期:built -> validated -> submitted -> approved -> scheduled -> published -> verified
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 om/VoiceStudio