构建和发布为 Windows 应用
发布 Windows 桌面应用程序的便捷方法是将其发布至 微软应用商店,本指南提供了将 Flutter 应用发布到 微软应用商店 的分步操作指南。
预先准备
#在开始发布 Flutter Windows 桌面应用程序之前,有必要确认你的应用满足 微软应用商店政策。
提交应用前加入 微软合作伙伴网络 也是必要的。
在合作伙伴中心申请应用
#在 微软合作伙伴中心 中管理一个应用程序的生命周期。
首先,有必要预约应用名称,并且确定有使用这个名称的权利。一旦名称确定可用,则该应用程序将可以提供推送通知等服务,并且可以开始添加扩展功能。
类似于价格、可用性、年龄等级和类别等选项必须在第一次提交时一并配置,这些选项在后续提交时将自动保留。
打包并部署
#应用程序发布到微软商店前必须要打包。有效的格式是 .msix、.msixbundle、.msixupload、.appx、 .appxbundle、.appxupload 和 .xap。
手动打包和部署
#查看 MSIX 打包,学习如何打包 Flutter Windows 桌面应用程序。
请注意,每个产品都有一个唯一的 ID,这是应用商店分配的。
如果应用包是手动构建的,在打包过程中必须手动添加 ID 详情。这些基本信息可以从合作伙伴中心检索到。
-
在合作伙伴中心中,导航到应用程序。
-
选择 Product management。
-
点击 Product identity,检查应用包的 ID,发布者,发布者的显示名称。
在手动打包应用程序后,还需要手动提交应用程序包到 微软合作伙伴中心。这个步骤可以通过创建新的提交来完成,导航到 Packages,并上传创建的应用程序包。
持续部署
#除了手动创建和部署软件包外,在第一次提交应用程序到微软商店后,还可以使用持续集成/持续部署 (CI/CD) 工具自动化构建、打包、版本管理、和部署应用程序。
Codemagic 持续集成/持续部署 (CI/CD)
#Codemagic 持续集成/持续部署 (CI/CD)
使用 Pub 上的 msix
package
来打包 Flutter Windows 桌面应用程序。
对于 Flutter 应用程序,无论是 Codemagic Workflow Editor 还是 codemagic.yaml 都可以用来打包应用程序并部署到微软合作伙伴中心。其他选项(如软件包中包含的功能列表和语言资源)可以使用上述的软件包进行配置。
对于发布应用来说,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 package,所以项目的 pubspec.yaml
必须包含一个合适的 msix_config
节点。
你必须从 Dev Center 创建一个具有 全局管理员权限 的 Azure AD 目录。
GitHub Action 需要从合作伙伴中心获取环境秘钥。
AZURE_AD_TENANT_ID
,AZURE_AD_ClIENT_ID
和 AZURE_AD_CLIENT_SECRET
在遵循 Windows Store Publish Action
的说明后,可以在 Dev Center 上看到。你还需要 SELLER_ID
秘钥,可以在 Dev Center 的 帐户设置 > 组织简介 > 法律信息 下找到。
应用程序必须已经在 Microsoft Dev Center 上有至少一个完整的提交,且必须在仓库中运行一次 msstore init
,Action 才能执行。完成后,在 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
更新应用程序的版本号
#对于发布到微软商店的 Flutter 桌面版应用,版本号必须在打包过程中设置,而不能通过
pubspec.yaml
或命令行参数设置。
默认的应用版本号为 1.0.0.0
。
对于还没有发布到微软商店的应用程序,你可以设置应用程序的可执行程序和产品的版本。可执行程序的默认版本是 1.0.0.1
,产品的默认版本是 1.0.0+1
。要设置这些内容,请找到 pubspec.yaml
并更新这一行:
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 package 打包时,可以在 pubspec.yaml
文件中配置 logo 路径。
要更新商店列表中的应用程序图标,请导航到提交的商店列表并选择商店 logo。在那里可以上传尺寸为 300 x 300 像素的图片。
所有上传的图片将被保留,以便于以后提交使用。
验证应用程序包
#在发布到微软商店之前,建议先在本地验证应用程序包。
Windows 应用认证工具包 是一个包含在 Windows 软件开发工具包(SDK)中的工具。
验证应用程序:
-
启动 Windows 应用认证工具包。
-
选择 Flutter Windows 桌面应用程序包(.msix、.msixbundle 等)。
-
选择测试报告的输出目录。
即使认证通过,报告也可能包含重要警告和信息。
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2024-04-27。 查看文档源码 或者 为本页面内容提出建议。