分发 Windows 应用的一种便捷方式是 Microsoft Store。本指南提供了通过此方式打包和部署 Flutter 应用的分步说明。

准备工作

#

在开始将 Flutter Windows 桌面应用发布到 Microsoft Store 之前,请首先确认它符合 Microsoft Store 策略

此外,你必须加入 Microsoft 合作伙伴网络才能提交应用。

在合作伙伴中心设置你的应用程序

#

Microsoft 合作伙伴中心管理应用程序的生命周期。

首先,预留应用程序名称并确保拥有该名称所需的权利。名称预留后,应用程序将获得服务(如推送通知)的配置,并且你可以开始添加附加组件。

定价、可用性、年龄分级和类别等选项必须与首次提交一起配置,并会自动保留供后续提交使用。

打包与部署

#

为了将应用程序发布到 Microsoft Store,你必须首先对其进行打包。有效的格式为 .msix.msixbundle.msixupload.appx.appxbundle.appxupload.xap

Microsoft Store 的手动打包与部署

#

请查阅 MSIX 打包以了解如何打包 Flutter Windows 桌面应用程序。

请注意,每个产品都有一个由应用商店分配的唯一身份。

如果包是手动构建的,则在打包过程中必须手动包含其身份详细信息。基本信息可以按照以下说明从合作伙伴中心检索

  1. 在合作伙伴中心,导航到该应用程序。
  2. 选择产品管理
  3. 点击产品身份,检索包身份名称、发行者和发行者显示名称。

手动打包应用程序后,将其手动提交到 Microsoft 合作伙伴中心。你可以通过创建新提交、导航到,然后上传已创建的应用程序包来完成此操作。

持续部署

#

除了手动创建和部署包之外,你还可以在首次将应用程序提交到 Microsoft Store 后,使用 CI/CD 工具自动完成构建、打包、版本控制和部署过程。

Codemagic CI/CD

#

Codemagic CI/CD 使用 msix pub 包来打包 Flutter Windows 桌面应用程序。

对于 Flutter 应用程序,请使用 Codemagic Workflow Editorcodemagic.yaml 来打包应用程序并将其部署到 Microsoft 合作伙伴中心。其他选项(例如包中包含的功能列表和语言资源)可以使用此包进行配置。

对于发布,Codemagic 使用 合作伙伴中心提交 API;因此,Codemagic 需要 关联 Azure Active Directory 和合作伙伴中心帐户

GitHub Actions CI/CD

#

GitHub Actions 可以使用 Microsoft Dev Store CLI 将应用程序打包成 MSIX 并发布到 Microsoft Store。setup-msstore-cli GitHub Action 安装 CLI,以便该 Action 可以将其用于打包和发布。

由于 MSIX 打包使用 msix pub 包,因此项目的 pubspec.yaml 必须包含适当的 msix_config 节点。

你必须从开发中心创建一个具有全局管理员权限的 Azure AD 目录。

GitHub Action 需要合作伙伴中心的环境机密。AZURE_AD_TENANT_IDAZURE_AD_ClIENT_IDAZURE_AD_CLIENT_SECRET 在开发中心可见,按照 Windows Store 发布 Action 的说明操作即可。你还需要 SELLER_ID 机密,它可以在开发中心中找到,路径为 帐户设置 > 组织资料 > 法律信息

该应用程序必须已经存在于 Microsoft 开发中心,并且至少完成了一次提交,并且在执行 Action 之前,必须在仓库中运行一次 msstore init。完成后,在 GitHub Action 中运行 msstore package .msstore publish 会将应用程序打包成 MSIX 并将其上传到开发中心的新提交。

MSIX 发布的必要步骤如下

yaml
- uses: microsoft/setup-msstore-cli@v1

- name: Configure the Microsoft Store CLI
  run: msstore reconfigure --tenantId $ --clientId $ --clientSecret $ --sellerId $

- name: Install Dart dependencies
  run: flutter pub get

- name: Create MSIX package
  run: msstore package .

- name: Publish MSIX to the Microsoft Store
  run: msstore publish -v

更新应用的版号

#

对于发布到 Microsoft Store 的应用,版本号必须在打包过程中设置。

应用的默认版本号是 1.0.0.0

对于未发布到 Microsoft Store 的应用,你可以设置应用可执行文件的文件和产品版本。可执行文件的默认文件版本为 1.0.0.1,默认产品版本为 1.0.0+1。要更新这些版本,请导航到 pubspec.yaml 文件并更新以下行

yaml
version: 1.0.0+1

构建名称由三个用点分隔的数字组成,后跟一个可选的构建号,构建号用 + 分隔。在上面的示例中,构建名称是 1.0.0,构建号是 1

构建名称成为文件和产品版本的前三个数字,而构建号成为文件和产品版本的第四个数字。

构建名称和构建号都可以通过在 flutter build windows 命令中分别指定 --build-name--build-number 来覆盖。

添加应用图标

#

要在打包 Flutter Windows 桌面应用程序之前更新其图标,请按照以下说明操作

  1. 在 Flutter 项目中,导航到 windows\runner\resources
  2. app_icon.ico 替换为所需的图标。
  3. 如果图标的名称不是 app_icon.ico,请继续更改 windows\runner\Runner.rc 文件中的 IDI_APP_ICON 值,使其指向新路径。

使用 msix pub 包打包时,徽标路径也可以在 pubspec.yaml 文件中配置。

要更新商店列表中的应用程序图像,请导航到提交的商店列表步骤并选择商店徽标。在那里,你可以上传 300 x 300 像素大小的徽标。

所有上传的图像都将保留供后续提交使用。

验证应用程序包

#

发布到 Microsoft Store 之前,请首先在本地验证应用程序包。

Windows 应用认证工具包是 Windows 软件开发工具包 (SDK) 中包含的工具。

要验证应用程序

  1. 启动 Windows 应用认证工具包。
  2. 选择 Flutter Windows 桌面包 (.msix.msixbundle 等)。
  3. 选择测试报告的目的地。

即使认证通过,报告也可能包含重要的警告和信息。