構建和釋出 Windows 桌面應用
分發 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 檢索必要的資訊。
- 在 Partner Center 中,導航到您的應用程式。
- 選擇 產品管理。
- 透過點選 產品標識 來檢索包標識名稱、釋出者和釋出者顯示名稱。
手動打包應用程式後,手動將其提交到 Microsoft Partner Center。您可以透過建立新的提交、導航到 Packages 並上傳建立的應用程式包來完成此操作。
持續部署
#除了手動建立和部署包之外,在首次將應用程式提交到 Microsoft Store 後,您還可以使用 CI/CD 工具自動完成構建、打包、版本控制和部署過程。
Codemagic CI/CD
#Codemagic CI/CD 使用 msix pub 包來打包 Flutter Windows 桌面應用程式。
對於 Flutter 應用程式,請使用 Codemagic Workflow Editor 或 codemagic.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_ID、AZURE_AD_CLIENT_ID 和 AZURE_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 釋出所需的步驟與以下類似:
- 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。
構建名稱將成為檔案版本和產品版本的前三個數字,而構建號將成為檔案版本和產品版本的第四個數字。
可以透過指定 --build-name 和 --build-number 分別在 flutter build windows 中覆蓋構建名稱和構建號。
新增應用圖示
#在打包之前更新 Flutter Windows 桌面應用程式的圖示,請使用以下說明:
- 在 Flutter 專案中,導航到 windows\runner\resources。
- 將 app_icon.ico 替換為您想要的圖示。
- 如果圖示的名稱不是 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) 中包含的一個工具。
驗證應用程式
- 啟動 Windows App Cert Kit。
- 選擇 Flutter Windows 桌面包(.msix、.msixbundle 等)。
- 選擇測試報告的目標位置。
即使認證透過,報告也可能包含重要的警告和資訊。