構建併發布 Windows 桌面應用
如何將 Flutter 應用釋出到 Microsoft Store。
分發 Windows 應用的一種便捷方式是使用 Microsoft Store。本指南提供了透過這種方式打包和部署 Flutter 應用的分步指南。
準備工作
#在開始將 Flutter Windows 桌面應用釋出到 Microsoft Store 的流程之前,請先確認它符合 Microsoft Store 政策。
此外,您必須加入 Microsoft 合作伙伴網路才能提交應用。
在合作伙伴中心(Partner Center)設定您的應用程式
#在 Microsoft 合作伙伴中心管理應用程式的生命週期。
首先,預留應用程式名稱並確保擁有該名稱的相關權利。名稱預留後,將為應用程式配置各項服務(例如推送通知),您便可以開始新增附加元件(Add-ons)。
定價、可用性、年齡分級和類別等選項必須在首次提交時進行配置,並會自動保留供後續提交使用。
打包與部署
#為了將應用程式釋出到 Microsoft Store,您必須先對其進行打包。有效格式包括 .msix、.msixbundle、.msixupload、.appx、.appxbundle、.appxupload 和 .xap。
為 Microsoft Store 進行手動打包和部署
#請檢視 MSIX 打包以瞭解如何打包 Flutter Windows 桌面應用程式。
請注意,每個產品都有一個由商店分配的唯一標識。
如果軟體包是手動構建的,則必須在打包過程中手動包含其標識詳細資訊。可以按照以下說明從合作伙伴中心獲取必要資訊:
- 在合作伙伴中心中,導航至該應用程式。
- 選擇 Product management(產品管理)。
- 點選 Product identity(產品標識)以獲取包標識名稱、釋出者和釋出者顯示名稱。
手動打包應用程式後,請將其手動提交到 Microsoft 合作伙伴中心。您可以透過建立新提交、導航到 Packages(軟體包)並上傳建立好的應用程式包來完成此操作。
持續部署
#除了手動建立和部署包之外,在首次將應用程式提交到 Microsoft Store 後,您還可以使用 CI/CD 工具自動完成構建、打包、版本控制和部署流程。
Codemagic CI/CD
#
Codemagic CI/CD 使用 msix pub 軟體包來打包 Flutter Windows 桌面應用程式。
對於 Flutter 應用程式,請使用 Codemagic 工作流編輯器 或 codemagic.yaml 來打包應用程式並將其部署到 Microsoft 合作伙伴中心。其他選項(如包中包含的功能列表和語言資源)可以使用此包進行配置。
為了進行釋出,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 軟體包,因此專案的 pubspec.yaml 必須包含適當的 msix_config 節點。
您必須從開發中心(Dev Center)建立一個具有全域性管理員許可權的 Azure AD 目錄。
GitHub Action 需要來自合作伙伴中心的部署金鑰(Secrets)。AZURE_AD_TENANT_ID、AZURE_AD_CLIENT_ID 和 AZURE_AD_CLIENT_SECRET 可在開發中心按照 Windows Store 釋出 Action 的說明獲取。您還需要 SELLER_ID 金鑰,該金鑰可在開發中心的 Account Settings(賬戶設定) > Organization Profile(組織資料) > Legal Info(法律資訊)下找到。
應用程式必須已存在於 Microsoft 開發中心並至少有一個完整的提交,並且在執行 Action 之前,必須在倉庫中執行一次 msstore init。完成後,在 GitHub Action 中執行 msstore package . 和 msstore publish,即可將應用程式打包為 MSIX 並上傳到開發中心的新提交中。
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
更新應用的版本號
#對於釋出到 Microsoft Store 的應用,版本號必須在打包過程中進行設定。
應用的預設版本號為 1.0.0.0。
對於未釋出到 Microsoft Store 的應用,您可以設定應用的可執行檔案版本和產品版本。可執行檔案的預設檔案版本為 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 軟體包打包時,也可以在 pubspec.yaml 檔案中配置徽標路徑。
要更新商店列表中的應用程式影像,請導航到提交的“商店列表”步驟並選擇“商店徽標”。從那裡,您可以上傳尺寸為 300 x 300 畫素的徽標。
所有已上傳的影像都會被保留供後續提交使用。
驗證應用程式包
#在釋出到 Microsoft Store 之前,請先在本地驗證應用程式包。
Windows 應用認證工具包(Windows App Certification Kit)是 Windows 軟體開發工具包 (SDK) 中包含的一個工具。
驗證應用程式:
- 啟動 Windows 應用認證工具包。
- 選擇 Flutter Windows 桌面程式包(.msix、.msixbundle 等)。
- 為測試報告選擇一個目標路徑。
即使認證透過,報告中也可能包含重要的警告和資訊。