分發 Windows 應用的一種便捷方式是 Microsoft Store。本指南將分步介紹如何以此方式打包和部署 Flutter 應用。

準備工作

#

在開始將 Flutter Windows 桌面應用釋出到 Microsoft Store 之前,請先確認它符合 Microsoft Store 政策

此外,您必須加入 Microsoft Partner Network 才能提交應用。

在 Partner Center 中設定您的應用程式

#

Microsoft Partner Center 中管理應用程式的生命週期。

首先,保留應用程式名稱,並確保擁有該名稱的必需許可權。名稱保留後,應用程式將為各項服務(例如推送通知)進行配置,然後您就可以開始新增附加元件。

首次提交時必須同時配置定價、可用性、年齡分級和類別等選項,並且這些選項將在後續提交中自動保留。

打包和部署

#

要將應用程式釋出到 Microsoft Store,您必須先對其進行打包。有效的格式為 .msix.msixbundle.msixupload.appx.appxbundle.appxupload.xap

Microsoft Store 的手動打包和部署

#

有關打包 Flutter Windows 桌面應用程式的更多資訊,請參閱 MSIX 打包

請注意,每個產品都有一個唯一的識別符號,由 Store 分配。

如果包是手動構建的,您必須在打包過程中手動包含其標識資訊。可以透過以下說明從 Partner Center 檢索必要的資訊。

  1. 在 Partner Center 中,導航到您的應用程式。
  2. 選擇 產品管理
  3. 透過點選 產品標識 來檢索包標識名稱、釋出者和釋出者顯示名稱。

手動打包應用程式後,手動將其提交到 Microsoft Partner Center。您可以透過建立新的提交、導航到 Packages 並上傳建立的應用程式包來完成此操作。

持續部署

#

除了手動建立和部署包之外,在首次將應用程式提交到 Microsoft Store 後,您還可以使用 CI/CD 工具自動完成構建、打包、版本控制和部署過程。

Codemagic CI/CD

#

Codemagic CI/CD 使用 msix pub 包來打包 Flutter Windows 桌面應用程式。

對於 Flutter 應用程式,請使用 Codemagic Workflow Editorcodemagic.yaml 來打包應用程式並將其部署到 Microsoft Partner Center。可以使用此包配置其他選項(例如包中包含的功能列表和語言資源)。

Codemagic 使用 Partner Center 提交 API 進行釋出;因此,Codemagic 需要 關聯 Azure Active Directory 和 Partner Center 帳戶

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 需要來自 partner center 的環境 Secrets。AZURE_AD_TENANT_IDAZURE_AD_CLIENT_IDAZURE_AD_CLIENT_SECRET 可在 Dev Center 中檢視,具體請遵循 Windows Store Publish Action 的說明。您還需要 SELLER_ID Secret,該 Secret 可以在 Dev Center 的 Account Settings > Organization Profile > Legal Info 下找到。

應用程式必須已存在於 Microsoft Dev Center 中,並至少有一個完整的提交,並且在 Action 執行之前必須在儲存庫中執行一次 msstore init。完成後,在 GitHub Action 中執行 msstore package .msstore publish 會將應用程式打包成 MSIX 並上傳到 Dev Center 的新提交中。

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

構建名稱將成為檔案版本和產品版本的前三個數字,而構建號將成為檔案版本和產品版本的第四個數字。

可以透過指定 --build-name--build-number 分別在 flutter build windows 中覆蓋構建名稱和構建號。

新增應用圖示

#

在打包之前更新 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 檔案中配置 logo 路徑。

要更新 Store 列表中的應用程式圖片,請導航到提交的 Store 列表步驟,然後選擇 Store logos。在那裡,您可以上傳 300 x 300 畫素的 logo。

所有上傳的圖片都將保留供後續提交使用。

驗證應用程式包

#

在釋出到 Microsoft Store 之前,請先在本地驗證應用程式包。

Windows App Certification Kit 是 Windows 軟體開發工具包 (SDK) 中包含的一個工具。

驗證應用程式

  1. 啟動 Windows App Cert Kit。
  2. 選擇 Flutter Windows 桌面包(.msix.msixbundle 等)。
  3. 選擇測試報告的目標位置。

即使認證透過,報告也可能包含重要的警告和資訊。