共用方式為


使用 GitHub Actions 將應用程式更新發佈至 Microsoft Store

備註

目前僅支援免費產品透過 GitHub Actions 進行應用程式更新操作。 付費產品將在未來版本中提供支援。

GitHub Actions 可讓您為 Microsoft Store 應用程式實作健全的 CI/CD 管線。 藉由直接從程式碼存放庫自動化建置、測試和部署步驟,您可以確保每個變更,無論是錯誤修正、功能更新或中繼資料變更,都經過驗證並安全地發佈到 Microsoft Store。

若要瞭解如何設定應用程式更新程式的必要條件,請觀看下列影片:

必要條件

  1. 合作夥伴中心註冊為 Windows 應用程式開發人員。

  2. 將租用戶與您的合作夥伴中心帳戶相關聯。 您可以在 合作夥伴中心關聯現有的 Microsoft Entra 標識碼 ,或 在合作夥伴中心建立新的 Microsoft Entra 標識碼來達成此目的。

  3. 在 Microsoft Entra ID 中註冊應用程式

  4. 接下來,從合作夥伴中心 [帳戶設定] 區段中 [使用者管理] 頁面底下的 [Microsoft Entra 應用程式] 索引標籤,新增代表您將用來存取合作夥伴中心帳戶提交的應用程式或服務的 Microsoft Entra ID 應用程式。 請確定為此應用程式指派管理員角色。

  5. 您要更新的應用程式必須已發佈並位於 Microsoft Store 中。

  6. 所需的 ID 和密碼:

    • 租用戶識別碼 (這是 Microsoft Entra 租用戶的唯一識別碼。前往 https://entra.microsoft.com/。流覽至 Azure Active Directory > 概觀。複製「租用戶識別碼」值。
    • 用戶端識別碼 (這是您建立之應用程式註冊的應用程式識別碼。在 Entra 系統管理中心,移至 Azure Active Directory > 應用程式註冊。選擇您註冊的應用程序。複製「應用程式ID」。用於 API 存取。 在 Entra 系統管理中心,移至 Azure Active Directory > 應用程式註冊。 選擇您註冊的應用程序。 複製「應用程式ID」。
    • 用戶端密碼 (這是為您的應用程式註冊產生的類似密碼的值,用於安全驗證。在 Entra 系統管理中心,移至 Azure Active Directory > 應用程式註冊。選取您已註冊的應用程式,移至 [憑證和秘密]。在「用戶端密碼」下,建立新的密碼(如果尚未建立)。立即複製值,因為它不會再次顯示)
    • 賣方識別碼 (這是您在 Microsoft 合作夥伴中心的唯一發行者/賣方識別碼。登入 合作夥伴中心。前往帳戶設定 > 、開發人員設定或識別碼。尋找「發布商 ID」或「賣家 ID」。

    這些將用作 GitHub 儲存庫中的秘密。

設定 GitHub Actions 以更新 Microsoft Store 上的應用程式

如果您的專案已有 GitHub 存放庫,您可以直接使用它來自動化 Microsoft Store 應用程式更新。

在您的 GitHub 存放庫中,移至 設定>密碼和變數>動作>新增存放庫密碼

螢幕擷取畫面,顯示如何將秘密新增至存放庫。

新增下列密碼:

  • AZURE_AD_APPLICATION_CLIENT_ID
  • AZURE_AD_APPLICATION_SECRET(Azure AD 應用程式密碼)
  • AZURE_AD_TENANT_ID
  • SELLER_ID

您可以使用 GitHub Actions 針對兩種類型的應用程式 MSIX 和 MSI/EXE 自動更新應用程式。 在下方選取您要更新的應用程式類型:

新增 GitHub 動作工作流程 ,以叫用 Microsoft GitHub 動作 (microsoft-store-apppublisher),以將套件和應用程式中繼資料更新發佈至存放區。

若要瞭解如何使用 GitHub Actions 將套件和中繼資料更新自動化,請觀看下列影片:

套件更新

在 .github/workflows/ 下,使用提供的工作流程程式碼片段建立AppPackageAutoUpdate.yml:

name: AppPackageAutoUpdate 
 
on: 
  push: 
    paths: 
      - 'release/package.msix' 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
      - name: Checkout repository 
        uses: actions/checkout@v4 
 
      - name: Configure Microsoft Store CLI 
        uses: microsoft/microsoft-store-apppublisher@v1.1 
 
      - name: Reconfigure store credentials 
        run: msstore reconfigure ` 
              --tenantId ${{ secrets.AZURE_AD_TENANT_ID }} ` 
              --sellerId ${{ secrets.SELLER_ID }} ` 
              --clientId ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }} ` 
              --clientSecret ${{ secrets.AZURE_AD_APPLICATION_SECRET }} 
 
      - name: Publish App package 
        run: msstore publish '${{ github.workspace }}/release/package.msix' -id <Store product Id>

當 package.msix 更新為發行資料夾中 CI/CD 流程的一部分時,會自動觸發AppPackageAutoUpdate.yml工作流程。

對於中繼資料的更新

第一次發佈中繼資料更新之前,請從合作夥伴中心取得應用程式提交的基底中繼資料 JSON。 這可確保您從應用程式的正確結構開始。 因此,使用提供的程式碼片段在 .github/workflows/GetBaseMetadata.yml 下建立 GitHub Actions 工作流程:

name: GetBaseMetadata 
 
on: 
  workflow_dispatch: 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
    - uses: actions/checkout@v3 
 
    - uses: microsoft/microsoft-store-apppublisher@v1.1 
 
    - name: Configure MSStore CLI 
      run: | 
        msstore reconfigure ` 
          --tenantId ${{ secrets.AZURE_AD_TENANT_ID }} ` 
          --sellerId ${{ secrets.SELLER_ID }} ` 
          --clientId ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }} ` 
          --clientSecret ${{ secrets.AZURE_AD_APPLICATION_SECRET }} 
 
    - name: Get base metadata  
      shell: pwsh 
      run: | 
        msstore submission get <Store product Id>

從 GitHub 存放庫中的 [動作] 索引標籤執行此工作流程。 選取相關工作流程,然後按一下 執行工作流程。

螢幕擷取畫面,顯示取得 MSIX 應用程式基底中繼資料的工作流程執行程式。

完成後,工作流程會在建置記錄中取得應用程式的中繼資料。 複製此檔案並在中繼資料資料夾中建立 metadata.json 檔案。

現在,在 .github/workflows/ 下,使用提供的工作流程程式碼片段建立AppMetadataAutoUpdate.yml:

name: AppMetadataAutoUpdate 
 
on: 
  push: 
    paths: 
      - 'metadata/metadata.json' 
 
jobs: 
  build: 
    runs-on: windows-latest 
 
    steps: 
      - name: Checkout repository 
        uses: actions/checkout@v4 
 
      - name: Configure Microsoft Store CLI 
        uses: microsoft/microsoft-store-apppublisher@v1.1 
 
      - name: Reconfigure store credentials 
        run: msstore reconfigure ` 
              --tenantId ${{ secrets.AZURE_AD_TENANT_ID }} ` 
              --sellerId ${{ secrets.SELLER_ID }} ` 
              --clientId ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }} ` 
              --clientSecret ${{ secrets.AZURE_AD_APPLICATION_SECRET }} 
 
      - name: Update metadata 
        run: | 
          $metadata = Get-Content -Raw "${{ github.workspace }}/metadata/metadata.json" 
          msstore submission updateMetadata <Store product Id> $metadata
      - name: Publish to Store 
        run: msstore submission publish <Store product Id>

當 metadata.json 作為 CI/CD 流程的一部分在中繼資料資料夾中更新時,將自動觸發 AppMetadataAutoUpdate.yml 工作流程。

上述工作流程將在背景執行下列動作:

  • 叫用 GitHub 動作 (microsoft-store-apppublisher)
  • 使用您設定的秘密 (租用戶識別碼、用戶端識別碼、用戶端密碼、賣方識別碼) 來驗證您的 Microsoft Store 合作夥伴中心帳戶。
  • 使用 Microsoft Store 開發人員 CLI (msstore) 來取得基底中繼資料,並將更新的套件或中繼資料發佈至 Microsoft Store。

如需命令的詳細資訊,請參閱 Microsoft Store 開發人員 CLI (MSIX)。

GitHub Actions 工作流程成功完成之後,請檢查 Microsoft Store 以確認您的變更已上線。 合作夥伴中心的認證程式完成後,會出現更新。

我們相信本文件將有助於顯著提高 Microsoft Store 更新過程的效率和可靠性。 透過遵循這些最佳實踐,您可以簡化應用程式發布並確保一致、高品質的發布體驗。