建立和發布為 Windows 應用

發布 Windows 桌面應用程式的便捷方法是將其發布至 微軟應用商店,本指南提供了將 Flutter 應用發布到 微軟應用商店 的分步操作指南。

預先準備

在開始發布 Flutter Windows 桌面應用程式之前,有必要確認你的應用滿足 微軟應用商店政策

送出應用前加入 微軟合作伙伴網路 也是必要的。

在合作伙伴中心申請應用

微軟合作伙伴中心 中管理一個應用程式的生命週期。

首先,有必要預約應用名稱,並且確定有使用這個名稱的權利。一旦名稱確定可用,則該應用程式將可以提供推送通知等服務,並且可以開始新增擴充套件功能。

類似於價格、可用性、年齡等級和類別等選項必須在第一次送出時一併設定,這些選項在後續送出時將自動保留。

打包並部署

應用程式發布到微軟商店前必須要打包。有效的格式是 .msix.msixbundle.msixupload.appx.appxbundle.appxupload.xap

手動打包和部署

檢視 MSIX 打包,學習如何打包 Flutter Windows 桌面應用程式。

請注意,每個產品都有一個唯一的 ID,這是應用商店分配的。

如果應用套件是手動建立的,在打包過程中必須手動新增 ID 詳情。這些基本訊息可以從合作伙伴中心檢索到。

  1. 在合作伙伴中心中,導向到應用程式。

  2. 選擇 Product management

  3. 點選 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_IDAZURE_AD_ClIENT_IDAZURE_AD_CLIENT_SECRET 在遵循 Windows Store Publish Action 的說明後,可以在 Dev Center 上看到。你還需要 SELLER_ID 秘鑰,可以在 Dev Center 的 帳戶設定 > 組織簡介 > 法律訊息 下找到。

應用程式必須已經在 Microsoft Dev Center 上有至少一個完整的送出,且必須在倉庫中執行一次 msstore init,Action 才能執行。完成後,在 GitHub Action 中執行 msstore packagemsstore 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 桌面應用程式的圖示:

  1. 導向到 Flutter 專案中的 windows\runner\resources 目錄。

  2. 替換 app_icon.ico 為想要的圖示。

  3. 如果圖示檔案的名稱不是 app_icon.ico,請將 windows\runner\Runner.rc 檔案中的 IDI_APP_ICON 值指向新的路徑。

在使用 msix pub package 打包時,可以在 pubspec.yaml 檔案中設定 logo 路徑。

要更新商店清單中的應用程式圖示,請導向到送出的商店清單並選擇商店 logo。在那裡可以上傳尺寸為 300 x 300 畫素的圖片。

所有上傳的圖片將被保留,以便於以後送出使用。

驗證應用程式套件

在發布到微軟商店之前,建議先在本地驗證應用程式套件。

Windows 應用認證工具包 是一個包含在 Windows 軟體開發工具包(SDK)中的工具。

驗證應用程式:

  1. 啟動 Windows 應用認證工具包。

  2. 選擇 Flutter Windows 桌面應用程式套件(.msix.msixbundle 等)。

  3. 選擇測試報告的輸出目錄。

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