构建和发布 Windows 桌面应用程序
分发 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 桌面应用程序的信息。
请注意,每个产品都有一个唯一的标识,由 Store 分配。
如果正在手动构建包,则必须在打包过程中手动包含其标识详细信息。可以使用以下说明从合作伙伴中心检索必要的信息
- 在合作伙伴中心,导航到应用程序。
- 选择产品管理。
- 通过点击产品标识来检索包标识名称、发布者和发布者显示名称。
手动打包应用程序后,将其手动提交到 Microsoft 合作伙伴中心。您可以通过创建新的提交、导航到软件包并上传创建的应用程序包来执行此操作。
持续部署
#除了手动创建和部署包之外,您还可以使用 CI/CD 工具自动执行构建、打包、版本控制和部署流程,前提是在首次将应用程序提交到 Microsoft Store 后。
Codemagic CI/CD
#Codemagic CI/CD 使用 msix
pub 包 来打包 Flutter Windows 桌面应用程序。
对于 Flutter 应用程序,请使用 Codemagic 工作流编辑器 或 codemagic.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
节点。
您必须从 Dev Center 创建一个 Azure AD 目录,并具有 全局管理员权限。
GitHub Action 需要来自合作伙伴中心的 محیط机密。AZURE_AD_TENANT_ID
、AZURE_AD_ClIENT_ID
和 AZURE_AD_CLIENT_SECRET
在按照 Windows Store 发布操作 的说明在 Dev Center 上可见。您还需要 SELLER_ID
机密,它可以在 Dev Center 的帐户设置>组织配置文件>法律信息中找到。
应用程序必须已存在于 Microsoft Dev Center 中,并且至少有一个完整的提交,并且必须在执行操作之前在存储库中运行一次 msstore init
。完成后,在 GitHub Action 中运行 msstore package .
和 msstore publish
将应用程序打包到 MSIX 中并将其上传到 Dev Center 上的新提交。
MSIX 发布所需的步骤类似于以下内容
- 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 的应用,您可以设置应用可执行文件的版本号。
version: 1.0.0+1
构建名称是由点分隔的三个数字,后跟一个可选的构建编号,该编号由 +
分隔。在上面的示例中,构建名称为 1.0.0
,构建编号为 1
。
构建名称成为文件和产品版本的的前三个数字,而构建编号成为文件和产品版本的第四个数字。
构建名称和编号都可以在 flutter build windows
中通过分别指定 --build-name
和 --build-number
来覆盖。
添加应用图标
#要更新 Flutter Windows 桌面应用程序的图标,请在打包前使用以下说明
- 在 Flutter 项目中,导航到windows\runner\resources。
- 将app_icon.ico替换为所需的图标。
- 如果图标的名称不是app_icon.ico,请继续更改windows\runner\Runner.rc文件中的IDI_APP_ICON值以指向新路径。
使用 msix
pub 包 打包时,还可以配置 pubspec.yaml
文件中的徽标路径。
要更新 Store 列表中的应用程序图像,请导航到提交的 Store 列表步骤并选择 Store 徽标。从那里,您可以上传大小为 300 x 300 像素的徽标。
所有上传的图像将保留用于后续提交。
验证应用程序包
#在发布到 Microsoft Store 之前,请先在本地验证应用程序包。
Windows 应用认证工具包 是 Windows 软件开发工具包 (SDK) 中包含的一个工具。
要验证应用程序
- 启动 Windows 应用认证工具包。
- 选择 Flutter Windows 桌面包 (.msix、.msixbundle 等)。
- 选择测试报告的目标位置。
即使认证通过,报告也可能包含重要的警告和信息。
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面上次更新于 2024-04-04。 查看源代码 或 报告问题。