建立和發布為 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 等)。
-
選擇測試報告的輸出目錄。
即使認證透過,報告也可能包含重要警告和訊息。