原文
https://medium.com/flutter-co…
前言
这篇文章最后发表在 Codemagic 博客上,由 Souvik Biswas 撰写
Flutter 容许您应用单个代码库为挪动设施、网络、桌面和嵌入式设施构建应用程序。2.0 的引入使得试用桌面应用程序变得更加容易,因为这个选项当初能够在 stable 频道上应用。
本文将帮忙您开始应用 Flutter 构建 Windows 桌面应用程序,生成一个版本 MSIX 构建,并应用 Codemagic 将该应用程序公布到微软合作伙伴核心。
如果你正在寻找一个建设 Flutter 桌面应用程序的更个别的入门指南,包含设计自适应布局,请查看这篇文章。
https://blog.codemagic.io/flu…
代码
https://github.com/sbis04/flu…
https://github.com/sbis04/flu…
注释
为 Windows 创立一个 Flutter 应用程序
在你开始创立一个新的 Flutter 应用程序之前,你应该在你的 Windows 零碎上装置 Flutter SDK。如果你没有装置 Flutter,依照装置指南这里。
https://docs.flutter.dev/get-…
如果你曾经在你的零碎上装置了 Flutter,确保版本在 2.0 以上。您能够应用 Flutter — version 命令查看您的 Flutter 版本。
要构建 Flutter 窗口应用程序,您应该在您的零碎上装置 Visual Studio 2019。在装置 Visual Studio 时,如果你想构建 win32 应用程序,能够应用“带 c + + 的桌面开发”工作负载,如果你想构建 UWP 应用程序,能够应用“通用 Windows 平台开发”工作负载。
默认状况下,Flutter 应用 win32 来构建 Windows 应用程序:
flutter config --enable-windows-desktop
为了构建 UWP (通用 Windows 平台)应用程序,你须要在 Flutter 的开发通道。运行以下命令:
flutter channel dev
flutter upgrade
flutter config --enable-windows-uwp-desktop
运行 flutter doctor
,查看是否有任何未解决的问题。要验证窗口是否列为可用设施之一,请运行 flutter devices
命令。
要创立一个新的 Flutter 应用程序,请应用以下命令:
flutter create <project_name>
将
_<project_name>_
替换为您心愿在我的项目中应用的名称ーー例如,flutter create flutter_desktop_sample。
下面的命令将创立一个 Flutter 计数器应用程序我的项目。你能够应用以下命令在 Windows 零碎上运行它:
flutter run -d windows
要应用 UWP 运行应用程序,请应用以下命令:
flutter run -d winuwp
Windows UWP 应用程序须要一个沙盒环境能力运行,所以零碎会提醒您启动它。在一个独自的窗口中关上具备管理员权限的 PowerShell,并运行以下命令:
checknetisolation loopbackexempt -is -n=[APP_CONTAINER_NAME]
运行此过程后,返回到前一个窗口并按“y”。这应该能够在 Windows 上启动 UWP 应用程序。
生成应用程序的可执行文件
为 Flutter Windows 应用程序生成.exe 可执行文件非常简单,只需运行以下命令:
flutter build windows
您能够通过拜访 <project_root>/build/windows/runner/Release/<app_name>.exe
来找到生成的文件。执行。这个 .exe
文件能够分发给任何用户,用户能够间接在本人的零碎上运行它。
有一个更平安和举荐的代替办法 .exe
文件ーー MSIX 包。MSIX 包的一些长处是:
- Windows 应用独立的环境平安地装置 MSIX 生成。它还有助于齐全卸载应用程序。当你应用一个
.exe
即便在应用程序被删除之后,注册表文件中的更改依然保留。 - 要将您的应用程序公布到 Microsoft Store,您须要一个 MSIX 包
.exe
文件不能间接公布。 - 能够有两种类型的 MSIX 包: 一种在本地运行,另一种用于散发到 Microsoft Store。能够将要生成的 MSIX 包的类型指定为生成参数。
在钻研这两种类型的 MSIX 构建之前,让咱们先创立一个 Microsoft 合作伙伴核心帐户。
创立 Microsoft 合作伙伴核心帐户
您须要一个 Microsoft 合作伙伴核心帐户能力应用 Microsoft Store 散发 Windows 应用程序。此外,在构建可散发的 MSIX 构建时,您须要指定一些应该与您的 Partner Center 应用程序中的属性相匹配的属性。
依照以下步骤创立和配置 Microsoft 合作伙伴核心应用程序:
- 你须要一个微软开发者帐户来公布利用到微软商店。你能够在这里注册一个。
https://developer.microsoft.c… - 登录到微软合作伙伴核心。如果你没有帐户,你能够很容易地创立一个新的帐户。
https://partner.microsoft.com… - 从 Microsoft 合作伙伴核心的主页上,单击“添加程序”。
- 在 Windows \& Xbox 上面抉择 Get started,如果需要的话填写任何细节。
- 进入
Windows & Xbox > Overview
,点击 Create a new app 按钮。
- 输出应用程序的名称。点击保留产品名称。
这将在 Microsoft 合作伙伴核心上创立一个应用程序,并导航到应用程序概览页面。
在配置 MSIX 发行版本时,您将须要从这个 Microsoft 合作伙伴核心应用程序取得一些信息。
为 MSIX 构建进行配置
生成 MSIX 安装程序的最简略办法是应用名为 MSIX 的 Flutter 包。这是一个命令行工具,帮忙创立一个 msix 安装程序从 Flutter 窗口建设文件。
在 pubspec.yaml
文件中增加 dev_dependencies
下的包:
dev_dependencies:
msix: ^2.6.5
如果没有指定其余值,那么在构建 MSIX 时,包应用一些默认配置值。能够在 pubspec.yaml
文件中提供 MSIX 配置。
要生成一个本地 MSIX,在 pubspec.yaml
文件开端增加以下配置:
msix_config:
display_name: <AppName>
publisher_display_name: <PublisherName>
identity_name: <PublisherName.AppName>
msix_version: 1.0.0.0
logo_path: ./logo/<file_name.png>
在下面的配置中,用适当的值替换尖括号:
display_name
: 应用程序的名称,将显示给用户。publisher_display_name
: 要显示给用户的发行者名称(能够是集体名称或公司名称)。identity_name
: Windows 利用的惟一标识符。msix_version
: 指定应用程序的构建版本。应用“Major. Minor. Build. Revision”格局,其中“Major”不能为“0”。logo_path
: 徽标文件的相对路径(可选)。如果没有提供,则应用默认的 Flutter 徽标。
您能够在 <project_directory>/logo
文件夹中增加徽标文件。现实状况下,标记应该是一个 256×256 分辨率的正方形图像。你能够在这里浏览更多对于徽标大小的信息。
https://docs.microsoft.com/en…
运行以下命令为您的 Flutter Windows 应用程序生成 MSIX 包:
flutter pub run msix:create
这个命令应用
pubspec.yaml
文件中定义的配置来生成 MSIX。留神: 任何没有通过 Microsoft 合作伙伴核心公布的 MSIX 包都是未签名的包。要装置并运行一个未签名的 MSIX 软件包,您必须在本地信赖并签名该应用程序,以便可能在 Windows 上运行它。
您能够通过拜访 <project_root>buildwindowsrunnerRelease<app_name>.msix
来找到生成的包。M6. 然而如果你双击。如果要在 Windows 零碎上关上 msix 包,装置按钮将被禁用。
你须要签订与您的 Flutter 窗口应用程序本地装置在您的 Windows 零碎的 MSIX 包。要做到这一点,请遵循以下步骤:
- 右键单击
.msix
文件并抉择 Properties。 - 转到属性对话框中的数字签名选项卡。
- 抉择“Msix Testing”签名者并单击“Details”,而后单击“View Certificate”。
- 单击“装置证书”开始装置证书。
- 在对话框中抉择本地机器。单击“下一步”。
- 在“将所有证书放入以下存储区”下,单击“浏览”
- 抉择“受信赖根证书颁发机构”文件夹。单击“确定”。
- 点击下一步,而后实现
- 当初,双击文件。您将看到当初启用了 Install 按钮。点击它装置应用程序。
有了这个,您的 Flutter 窗口应用程序将装置在您的零碎上。你能够通过在开始菜单中搜寻找到它。
在 Microsoft 合作伙伴核心散发您的包
当初,让咱们看看如何应用 Microsoft Partner Center 公布包。批改 pubspec.yaml
文件中的 MSIX 配置,如下所示:
msix_config:
display_name: <AppName>
publisher_display_name: <PublisherName>
identity_name: <PublisherName.AppName>
publisher: <PublisherID>
msix_version: 1.0.0.0
logo_path: ./logo/<file_name.png>
store: true
这里定义了另外两个属性:
publisher
: 在 Microsoft 合作伙伴核心应用程序中显示的 Publisher ID。store
: 将此设置为true
将应用 Microsoft Partner Center 生成一个 MSIX 包可散发。
此外,确保 display_name
、publisher_display_name
和 identity_name
的属性值与合作伙伴核心中的值相匹配。通过在 Microsoft Partner Center 应用程序中导航到 Product management > Product Identity,您将找到这些值。
留神: 如果您正在生成用于公布到 Microsoft Store 的 MSIX 包,那么您将无奈在本地装置或运行证书。该软件包只能通过 Microsoft 合作伙伴核心公布。
当初,您曾经配置您的 Flutter Windows 应用程序的发行版,让咱们建设和散发它应用 Codemagic。一旦你开始为你的应用程序增加新的个性,Codemagic 使得散发更新的版本变得更加容易和疾速。
将我的项目增加到 Codemagic
将我的项目增加到 Codemagic 的最简略办法是通过 Git 提供程序。将您的我的项目增加到 Git 提供程序中,比方(GitHub、Bitbucket 或 GitLab),并依照上面的步骤开始应用 Codemagic:
- 登录 Codemagic。如果你是一个新用户,请 sign up。
- 连贯到 Git 提供者,你曾经上传了您的 Flutter 我的项目通过进入 Settings 下的集成。请确保您曾经受权到上传应用程序的存储库。
- 导航到 Applications 页面,而后点击增加应用程序。
- 抉择 Git provider:
- 单击 Next: Authorize integration to Authorize Codemagic。如果您曾经受权了您抉择的 Git provider,请单击 Next: Select repository。
如果您应用 GitHub 作为您的 Git 提供者,那么您须要在抉择存储库之前执行一个额定的步骤。单击 Install GitHub App 设置集成。您能够在这里理解更多对于如何配置 GitHub 应用程序集成的信息。
https://docs.codemagic.io/get…
- 当初,从下拉菜单中抉择存储库,并抉择 Flutter app 作为我的项目类型。而后单击 Finish: Add application:
- 您将被带到我的项目设置。工作流编辑器选项卡将被默认选中。
应用 Codemagic 构建和公布
你能够应用 Workflow Editor 编辑器或 Codemagic YAML 文件在 Codemagic 上构建一个 Flutter 应用程序。要在 Codemagic 上构建 Windows 应用程序,您须要通过拜访这个页面来启用计费。
启用 Microsoft 合作伙伴核心集成
Codemagic 应用 Microsoft Store submission API 将 Windows 应用程序公布到 Microsoft Store。要应用这种集成,必须将 Microsoft 合作伙伴核心帐户链接到 Azure AD 应用程序,并向 Codemagic 提供必要的信息(租户名、租户 ID、客户 ID 和客户秘密)。
依照上面的步骤生成必要的信息:
- 通过点击齿轮图标进入你的帐户设置。
- 浏览组织概要 > 租户。如果曾经有一个现有租户,则能够将其与合作伙伴核心帐户关联。然而,倡议为 Codemagic 创立一个新的租户。
- 要创立新租户,请单击 Create 并填写所需信息。
- 应用新租户拜访你的 Azure AD 账户。
- 进入应用程式注册(从右边的菜单),而后点击「+ 新注册」。
- 输出应用程序的名称,并应用 Single tenant 选项。您能够将 Redirect URI 字段放弃为空。点击注册。
- 进入证书和秘密(从右边的菜单),进入客户秘密标签,并单击“+ 新客户机秘密”。
- 输出形容,抉择客户秘密的有效期。点击增加。
留神 Value 字段,这是客户机秘密。
- 最初,转到合作伙伴核心 > 帐户设置 > 用户治理。抉择 Azure AD 应用程序,而后点击“+ Create Azure AD application”。抉择您创立的应用程序,单击 Next,并将 Developer 角色赋予它。
当初,您能够进入 Codemagic 网页并启用 Microsoft 合作伙伴核心集成。它能够在用户设置 > 集体我的项目集成局部中启用,也能够在团队设置 > 团队帐户中共享我的项目的团队集成中启用。
依照以下步骤启用 Microsoft 合作伙伴核心集成:
- 在“集成”下,单击“合作伙伴核心”旁边的“连贯”按钮。
- 输出所需的信息。通过进入合作伙伴核心 > 帐户设置 > 组织配置文件 > 租户,能够找到租户名和租户 ID。在 Azure AD 的概览页面上找到客户端 ID,而后输入您新近留神到的客户端机密。
- 点击保留。
配置代码魔法应用工作流编辑器抖动窗口应用程序
要应用工作流编辑器配置您的我的项目,请转到 Codemagic 上的 Workflow Editor 选项卡:
- 在“为平台生成”下抉择“Windows”。
- 将 VM 实例更改为 Windows。
- 向下滚动到 Build 选项卡。抉择生成我的项目所需的 Flutter 版本,选中 Create a Windows MSIX package 复选框,并将模式设置为 Release。
- 转到“散发”选项卡,以配置 Microsoft 合作伙伴核心散发。单击此处可开展 Microsoft 合作伙伴核心选项卡。选中“启用公布到 Microsoft 商店”复选框。
- 从下拉菜单中抉择租户。输出咱们在 Configuring MSIX 局部中探讨的其余信息。确保此信息与您的合作伙伴核心应用程序相匹配。
- 点击保留更改。
留神: 您必须手动将应用程序的第一个版本公布到合作伙伴核心。您能够从构建工件中下载 MSIX 包。
您已实现 Windows 公布工作流的配置。单击此页面顶部的“启动第一个构建”,而后单击“启动新构建”以启动构建过程。
应用 Codemagic.yaml 为 Flutter Windows 应用程序配置 Codemagic
要应用 YAML 配置构建,请转到 Flutter 我的项目,在根目录 codemagic.yaml
中创立一个新文件。
Add the following template to the file:
将以下模板增加到文件中:
workflows:
my-workflow:
name: Workflow name
instance_type: mac_mini
max_build_duration: 60
environment:
groups:
- ...
flutter: stable
cache:
cache_paths:
- ~/.pub-cache
scripts:
- ...
artifacts:
- ...
publishing:
email:
recipients:
- name@example.com
这是一个在 Codemagic 上构建应用程序的根本工作流模板。
https://docs.codemagic.io/yam…
要生成一个 MSIX 包并应用 Microsoft 合作伙伴核心公布它,请按以下步骤批改工作流:
- 定义一个适合的工作流名称,并应用 Windows VM 实例:
workflows: windows-release-workflow: name: Windows release workflow instance_type: windows_x2 max_build_duration: 60
对于 Windows 生成,将 instance_type
设置为 windows_x2
。
- 增加以下环境变量:
environment: groups: \- windows-signing flutter: master
您须要以加密的格局将客户机秘密上传到 Codemagic 的应用程序环境变量 (windows-signing
是应用程序环境变量的名称)。
- 转到 Codemagic 上的我的项目页面,而后单击 Switch to YAML configuration。转到 Environment variables 选项卡,并增加凭据。输出变量名为
PARTNER_CLIENT_SECRET
,而后将客户端秘密值粘贴到变量值字段中。创立一个名为windows-signing
的组。确保选中了平安复选框,而后单击“增加”。
- 首先,在
scripts
局部,获取 Flutter 包:
scripts: \- name: Get Flutter packages script: flutter packages pub get
- 启用 Windows 平台:
- name: Configure for Windows script: flutter config \--enable-windows-desktop
- 应用 Flutter 构建 Windows 应用程序:
- name: Build Windows script: flutter build windows
- 生成可散发的 MSIX 包:
- name: Package Windows script: flutter pub run msix:create
- 如果您曾经将 MSIX 配置增加到
pubspec.yaml
文件中,那么下面的命令应该实用于您。否则,您能够间接在 CLI 工具中提供配置,而无需对您的我的项目pubspec.yaml
文件进行任何批改:
- name: Package Windows script: | flutter pub add msix flutter pub run msix:create \--store \--publisher-display-name=<PublisherName> \--display-name=<AppName> \--publisher=<PublisherID> \--identity-name=<PublisherName.AppName> \--version=1.0.0.0
- 为了检索生成的 MSIX,将
artifacts
门路更新为:
artifacts: \- build/windows/**/*.msix
- 在
publishing
局部,用你本人的email
代替电子邮件。 - 若要向 Microsoft 搭档核心公布,请在公布下增加以下内容
publishing
:
publishing: partner_center: store_id: <STORE_ID> tenant_id: <TENANT_ID> client_id: <CLIENT_ID> client_secret: $PARTNER_CLIENT_SECRET
- 用适当的值替换尖括号。您将从 Azure AD Overview 页面取得
tenant_id
和client_id
。你能够通过进入产品治理 > 产品标识,在微软合作伙伴核心应用程序中找到store_id
。client_secret
是从后面定义的应用程序 / 环境变量中检索到的。
这样就实现了 codemagic.yaml
文件的配置。当初,只需提交并将文件增加到 Git 提供程序中,就能够开始了。
留神: 你应该通过微软合作伙伴核心手动公布第一个版本的利用。从仪表板上抉择你的应用程序,点击开始提交,而后填写详细信息提交应用程序。第一个版本应该在应用 Codemagic 公布下一个版本之前齐全公布。
要开始应用 YAML 文件构建 Flutter Windows 应用程序,请拜访 Codemagic 上的我的项目页面,而后单击 Start your first build。抉择您的工作流程,而后单击“启动新生成”以启动生成过程。
完结了
恭喜你 \! 你曾经胜利地建设了你的第一个 Flutter Windows 应用程序,并且应用 Codemagic 将它公布到微软商店。
一旦你开始给你的利用增加新的性能,你能够通过简略地更新构建编号和运行 Codemagic 构建,轻松地公布你的 Windows 利用的下一个版本。当然,你也能够增加其余工作流,这样 Codemagic 就能够为 Windows、iOS、Android 或 Linux 构建 Flutter 应用程序。
您能够在这里找到样本 Flutter Windows 应用程序的残缺 codemagic.yaml 配置文件。在这个 GitHub 仓库上查看 Flutter 桌面应用程序示例。
https://github.com/sbis04/flu…
https://github.com/sbis04/flu…
© 猫哥
- 微信 ducafecat
- 博客 ducafecat.tech
- github
- bilibili