構建併發布 Windows 桌面應用
如何將 Flutter 應用釋出到 Microsoft Store。
一種便捷的 Windows 應用分發方式是 Microsoft Store。本指南提供了將 Flutter 應用以這種方式打包和部署的分步說明。
準備工作
#在開始將 Flutter Windows 桌面應用釋出到 Microsoft Store 的過程之前,請先確認它滿足 Microsoft Store 策略。
此外,您必須加入 Microsoft Partner Network 才能提交應用程式。
在合作伙伴中心設定您的應用程式
#在 Microsoft Partner Center 中管理應用程式的生命週期。
首先,預留應用程式名稱並確保該名稱的必要權利存在。預留名稱後,將為服務(如推送通知)配置應用程式,然後您可以開始新增附加元件。
定價、可用性、年齡評級和類別等選項必須在首次提交時進行配置,並在後續提交中自動保留。
打包和部署
#為了將應用程式釋出到 Microsoft Store,您必須首先對其進行打包。有效的格式是 .msix、.msixbundle、.msixupload、.appx、.appxbundle、.appxupload 和 .xap。
手動打包和部署到 Microsoft Store
#請檢視 MSIX 打包,瞭解有關打包 Flutter Windows 桌面應用程式的資訊。
請注意,每個產品都有一個唯一的標識,由商店分配。
如果手動構建包,則必須在打包過程中手動包含其標識詳細資訊。可以使用以下說明從合作伙伴中心檢索基本資訊
- 在合作伙伴中心,導航到應用程式。
- 選擇 產品管理。
- 透過單擊 產品標識,檢索包標識名稱、釋出者和釋出者顯示名稱。
手動打包應用程式後,手動將其提交到 Microsoft Partner Center。您可以透過建立新的提交、導航到 包 並上傳建立的應用程式包來執行此操作。
持續部署
#除了手動建立和部署包之外,在首次將應用程式提交到 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 需要來自合作伙伴中心的 environment secrets。AZURE_AD_TENANT_ID、AZURE_AD_ClIENT_ID 和 AZURE_AD_CLIENT_SECRET 在 Dev Center 中按照 Windows Store Publish Action 的說明中可見。您還需要 SELLER_ID secret,可以在 Dev Center 的 帳戶設定 > 組織資訊 > 法律資訊 中找到。
該應用程式必須已存在於 Microsoft Dev Center 中,並且至少有一個完整的提交,並且必須在儲存庫中執行 msstore package . 一次,然後才能執行該 Action。完成後,執行 msstore publish 在 GitHub Action 中將應用程式打包為 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。
構建名稱成為檔案和產品版本的前三個數字,而構建號成為檔案和產品版本的第四個數字。
可以透過在 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 App Certification Kit 是包含在 Windows 軟體開發工具包 (SDK) 中的工具。
要驗證應用程式
- 啟動 Windows App Cert Kit。
- 選擇 Flutter Windows 桌面包 (.msix、.msixbundle 等)。
- 選擇測試報告的目的地。
即使認證透過,報告也可能包含重要的警告和資訊。