GitHub ActionsでMacアプリをビルド中に発生する「Provisioning profile XXXX doesn't include the currently selected device Mac-1719908638417.local」エラーの原因と解決策

2024-07-27

GitHub Actions での "Provisioning profile "XXXX" doesn't include the currently selected device "Mac-1719908638417.local" エラーの原因と解決策

原因:

このエラーにはいくつかの考えられる原因があります。

  • プロビジョニングプロファイルが古い: プロビジョニングプロファイルは定期的に更新する必要があります。古いプロビジョニングプロファイルを使用していると、このエラーが発生する可能性があります。
  • プロビジョニングプロファイルが無効: プロビジョニングプロファイルが無効になっている場合、このエラーが発生する可能性があります。
  • デバイスがプロビジョニングプロファイルに含まれていない: デバイスがプロビジョニングプロファイルに含まれていない場合、このエラーが発生します。
  • Xcode が間違ったプロビジョニングプロファイルを使用している: Xcode が間違ったプロビジョニングプロファイルを使用している場合、このエラーが発生する可能性があります。

解決策:

このエラーを解決するには、次の手順を実行します。

  1. プロビジョニングプロファイルが最新であることを確認してください。 古いプロビジョニングプロファイルを使用している場合は、新しいプロビジョニングプロファイルをダウンロードしてインストールする必要があります。
  2. プロビジョニングプロファイルが有効であることを確認してください。 プロビジョニングプロファイルが無効になっている場合は、有効にする必要があります。
  3. デバイスがプロビジョニングプロファイルに含まれていることを確認してください。 デバイスがプロビジョニングプロファイルに含まれていない場合は、デバイスをプロビジョニングプロファイルに追加する必要があります。
  4. Xcode が正しいプロビジョニングプロファイルを使用していることを確認してください。 Xcode が間違ったプロビジョニングプロファイルを使用している場合は、正しいプロビジョニングプロファイルを選択する必要があります。

追加のヒント:

  • GitHub Actions ワークフローで xcodebuild アクションを使用している場合は、PROVISIONING_PROFILE 環境変数を設定して、使用するプロビジョニングプロファイルを指定できます。

このエラーが解決しない場合は、さらにサポートが必要になる可能性があります。その場合は、GitHub Actions の問題トラッカーで問題を報告してください。




name: iOS ビルドとデプロイ

on:
  push:
    branches: [ main ]

jobs:

  build-and-deploy:
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v3

      - name: プロビジョニング プロファイルをダウンロード
        run: |
          curl -o provisioning_profile.mobileprovision https://your-provisioning-profile-url

      - name: プロビジョニング プロファイルを Base64 にエンコード
        run: |
          base64 provisioning_profile.mobileprovision > provisioning_profile_base64

      - name: Xcode をインストール
        run: |
          xcode-select -s /Applications/Xcode.app/Contents/Developer

      - name: プロジェクトをビルド
        run: |
          xcodebuild -project YourProject.xcodeproj -scheme YourScheme -configuration Release

      - name: アーティファクトをアップロード
        uses: actions/upload-artifact@v3
        with:
          name: build
          path: ./build

      - name: デプロイ (省略)
        run: |
          # デプロイメント スクリプトを実行

このコードは次のことを行います。

  1. リポジトリををチェックアウトします。
  2. プロビジョニング プロファイルをダウンロードします。
  3. プロビジョニング プロファイルを Base64 にエンコードします。
  4. Xcode をインストールします。
  5. プロジェクトをビルドします。
  6. ビルド アーティファクトをアップロードします。
  7. デプロイメント スクリプトを実行します (省略)。

注:

  • このコードはあくまでも例であり、プロジェクトの要件に合わせて変更する必要があります。
  • your-provisioning-profile-url を、実際のプロビジョニング プロファイルの URL に置き換える必要があります。
  • YourProject.xcodeprojYourScheme、および Release を、プロジェクトの実際の値に置き換える必要があります。
  • デプロイメント スクリプトは、使用するデプロイメント方法に応じて作成する必要があります。



GitHub Secrets を使用する:

GitHub Secrets を使用すると、プロビジョニング プロファイルを安全にワークフローに保存できます。 これにより、プロビジョニング プロファイルを Base64 にエンコードする必要がなくなり、ワークフローのコードをよりクリーンで読みやすくすることができます。

Fastlane を使用する:

Fastlane は、iOS アプリの開発とリリースを自動化するためのツールです。 Fastlane を使用すると、プロビジョニング プロファイルを含む iOS デバイスの証明書とプロビジョニング プロファイルを簡単に管理できます。

カスタムランナーを使用する:

独自のランナーを作成して、プロビジョニング プロファイルをワークフローで使用することができます。 これにより、ワークフローのニーズに合わせたプロビジョニング プロファイルの処理方法をより細かく制御できます。

どの方法を選択するかは、プロジェクトの要件とニーズによって異なります。

以下、それぞれの方法の詳細と、いつ使用するかのガイダンスをご紹介します。

  • 利点:
    • ワークフローのコードをよりクリーンで読みやすくすることができます。
  • 欠点:
  • いつ使用する:
  • 欠点:
  • いつ使用する:
    • iOS デバイスの証明書とプロビジョニング プロファイルを簡単に管理したい場合。
    • iOS アプリの開発とリリースを自動化したい場合。
  • 利点:
  • 欠点:
  • いつ使用する:
    • ワークフローのニーズに既存のソリューションが対応していない場合。
    • プロビジョニング プロファイルの処理方法をより細かく制御する必要がある場合。

github-actions cicd provisioning-profile

github actions cicd provisioning profile