次の方法で共有


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

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

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

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

前提条件

  1. パートナー センターで Windows アプリ開発者として登録します。

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

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

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

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

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

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

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

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

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

GitHub リポジトリで、 設定>Secrets と変数>Actions>New Repository Secret に移動します。

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

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

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

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

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

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