跳转至

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 或提交之前:

  1. 在 Partner Center 中将 VoiceStudio 保留为 EXE/MSI 产品。
  2. 确认卖家/发布者身份为 Yupcha Softwares Private Limited。
  3. 将 ELECTRON_WINDOWS_CSC_LINK 和 ELECTRON_WINDOWS_CSC_KEY_PASSWORD 添加为存储库机密。证书必须链接到 Microsoft 受信任根证书计划中的 CA,且其使用者必须与法定发布者匹配。
  4. 批准年龄分级、生成式 AI 和语音克隆声明、销售区域、定价和发布时间。

切勿将凭据或导出的证书放入存储库或工作流产物中。

构建并验证

运行 Microsoft Store package 工作流。在迭代期间保持 stage_package_urls 禁用。release_tag 可为空用于分支验证;生产暂存需要精确的 v<package-version> 标签。

对于 x64 和实验性 ARM64,该工作流:

  1. 验证共享的 microsoft-store 策略;
  2. 使用 Store 分发标识构建现有的 NSIS 目标;
  3. 验证安装程序以及每个打包的 .exe、.dll、.node Authenticode 签名;
  4. 检查安装程序签名者和“添加/删除程序”中的发布者是否与规范法定发布者一致;
  5. 执行静默全新安装,启动已安装的设置界面,然后静默卸载;
  6. 在 x64 上,安装上一直接发布版并就地升级到 Store 构建,确认当前只有一个卸载条目并且启动正常;
  7. 写入来源和 Authenticode 证据;
  8. 将规范元数据、盒装封面图和截图汇总到 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 中:

  1. 选择 EXE 包类型和匹配的 x64/ARM64 体系结构;
  2. 输入不可变的包 URL 和 /S 安装程序参数;
  3. 使用 store/metadata.json、store/privacy.json 和生成的列表资源,而不是维护单独的副本;
  4. 在所有者批准下完成权限、AI、语音克隆、年龄分级和隐私回答;
  5. 私下提交,并在此处记录提交 ID 和审核结果。

没有任何存储库工作流会提交或发布 Partner Center 列表。

验收与回滚

在生产环境发布之前,手动验证干净安装、从上一直接发布版升级、首次运行时的运行时设置、应用程序启动、应用内更新、静默卸载,以及在受支持的 Windows 版本上的单个“添加/删除程序”条目。记录认证结果和已安装的包 URL。

对于失败的提交,修复分支,并在所有者批准的版本升级后暂存一个更高的新版本;绝不要替换已认证 URL 的字节。在发布之前,在 Partner Center 中撤回提交。发布之后,在那里移除可用性或将其下架,同时保持不可变的安装程序 URL 和直接下载发布完好无损。

生命周期:built -> validated -> submitted -> approved -> scheduled -> published -> verified

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 om/VoiceStudio