GitHub Actionsを使用して Microsoft Store にアプリの更新プログラムを発行する

GitHubアクションを使用したアプリの更新操作は、現在、無料製品でのみサポートされています。 有料製品は、今後のリリースでサポートされる予定です。

GitHub Actionsを使用すると、Microsoft Store アプリ用の堅牢な CI/CD パイプラインを実装できます。 コード リポジトリから直接ビルド、テスト、デプロイの手順を自動化することで、バグ修正、機能更新、メタデータの変更など、すべての変更が検証され、Microsoft Store に安全に公開されることを確認できます。

アプリの更新プロセスの前提条件を設定する方法については、次のビデオを参照してください。

前提条件

  1. Partner Center でWindows アプリ開発者として登録します。

  2. パートナー センター アカウントにテナントを関連付けます。 これを実現するには、パートナー センターで既存のMicrosoft Entra IDを関連付けるか、パートナー センターで新しいMicrosoft Entra IDを作成することができます。

  3. Register アプリケーションを Microsoft Entra ID に登録する

  4. 次に、パートナー センターの [アカウント設定] セクションの [ユーザー管理] ページの [Microsoft Entra アプリケーション] タブから、パートナー センター アカウントの申請にアクセスするために使用するアプリまたはサービスを表すMicrosoft Entra ID アプリケーションを追加します。 このアプリケーションにマネージャー ロールを確実に割り当てます。

  5. 更新するアプリは、既に Microsoft Store で公開され、公開されている必要があります。

  6. 必要な ID とシークレット:

    • テナント ID(これは、Microsoft Entra テナントの一意の識別子です。https://entra.microsoft.com/ にアクセスします。Identity > Overview に移動します。「Tenant ID」の値をコピーします。)
    • クライアント ID (これは、作成したアプリ登録のアプリケーション ID です。 Entra 管理センターで、[Identity > Applications > アプリの登録] に移動します。 登録済みのアプリを選択します。 "アプリケーション (クライアント) ID" をコピーします。
    • クライアント シークレット (これは、セキュリティで保護された認証に使用される、アプリの登録に対して生成されるパスワードのような値です。Entra 管理センターで、[Identity > Applications > アプリの登録] に移動します。登録済みのアプリを選択し、[証明書と証明書] に移動します。シークレット。[クライアント シークレット] で、新しいシークレットを作成します (まだ作成していない場合)。値は再び表示されないため、すぐにコピーします)
    • 販売者 ID (これは、Microsoft Partner Centerの一意の発行元/販売者識別子です。Partner Center にサインインします。[アカウント設定] > [開発者向け設定] または [識別子] に移動します。"Publisher ID" または "Seller ID" を探します)。

    これらは、GitHub リポジトリのシークレットとして使用されます。

Microsoft Store 上のアプリを更新するためのGitHub Actionsの設定

プロジェクトに既にGitHub リポジトリがある場合は、Microsoft Store アプリの更新を自動化するために直接使用できます。

GitHub リポジトリで、設定>シークレットと変数>アクション>新しいリポジトリシークレットに移動します。

リポジトリにシークレットを追加する方法を示すスクリーンショット。

次のシークレットを追加します。

  • AZURE_AD_APPLICATION_CLIENT_ID
  • AZURE_AD_APPLICATION_SECRET
  • AZURE_AD_TENANT_ID
  • SELLER_ID (販売者ID)

アプリの更新は、MSIX と MSI/EXE の両方の種類のGitHub Actionsを使用して自動化できます。 以下で更新するアプリの種類を選択します。

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@v4 
 
    - 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)
  • 構成したシークレット (テナント ID、クライアント ID、クライアント シークレット、販売者 ID) を使用して、Microsoft Store パートナー センター アカウントを認証します。
  • Microsoft Store Developer CLI (msstore) を使用して基本メタデータを取得し、更新されたパッケージまたはメタデータを Microsoft Store に発行します。

コマンドの詳細については、 Microsoft Store Developer CLI (MSIX) を参照してください。

GitHub Actions ワークフローが正常に完了したら、Microsoft Store を確認して、変更が有効であることを確認します。 更新プログラムは、パートナー センターの認定プロセスが完了した後に表示されます。

Microsoft は、このドキュメントが Microsoft Store の更新プロセスの効率と信頼性を大幅に向上させるのに役立つと信頼しています。 これらのベスト プラクティスに従うことで、アプリの発行を合理化し、一貫した高品質のリリース エクスペリエンスを確保できます。