【Xcode】プロビジョニングプロファイルとは?作成と反映方法

この記事からわかること
- Xcodeのプロビジョニングプロファイル(Provisioning Profile)とは?
- Automatically manage signingとは?
- 作成方法と反映方法
- エラー:Provisioning profile "Provisioning Profilesの名前" doesn't include signing certificate "証明書の名前".の解決方法
index
[open]
\ アプリをリリースしました /
環境
- Xcode:15.0.1
- iOS:17.0
- watchOS:10.0
- Swift:5.9
- macOS:Sonoma 14.1
プロビジョニングプロファイル(Provisioning Profile)とは?
プロビジョニングプロファイル(Provisioning Profile)とはXcodeから設定できるiOSやmacOSアプリを署名して配布するために必要な証明書と設定情報のセットです。基本的には「証明書+AppID+Device ID(UDID)」をまとめたものという認識で良いと思います。
プロビジョニングプロファイルによってアプリの開発者や設定を明確にすることができ、開発したアプリをデバイスでテストしたり、テスターと共有、App Storeを介してユーザーに配布したりすることができます。
含まれている設定情報はアプリの識別子(AppID)や利用制限のためのデバイス情報、アプリの機能(リモート通知など)にアクセスするために必要な権限などが含まれています。
作成は「Apple Developer Program」から行うことが可能になっておりアプリごとに作成や設定が必要になります。
さらにプロビジョニングプロファイルには開発用(Development)と配布用(Distribution)があるので状況に合わせたものを作成、設定する必要があります。
- 証明書+AppID+Device ID(UDID)をまとめたもの
- デバイスやアプリの機能の利用制限
- 開発者を証明するためのもの
- 作成はDeveloperサイトから
- 開発用と配布用がある
Automatically manage signing
Xcodeでアプリのプロジェクトを作成し、公開する際には必ず必要になってくるプロビジョニングプロファイルですが、
本来は手作業で作成するプロビジョニングプロファイルですが、Xcodeには「Automatically manage signing(自動署名管理)」という仕組みがされており、Xcodeにサインインしているアカウントがチームに加入していれば、Bundle IDを元に自動で生成してくれます。
例えば開発用のプロビジョニングプロファイルを自動生成してくれる「Automatically manage signing」の設定は「TARGETS」>「Signing & Capabilities」から有効/無効を操作できます。(デフォルトはチェックが入っており有効になっている)

一方配布用のプロビジョニングプロファイルを自動生成してくれる「Automatically manage signing」の設定はアーカイブ時に選択できるオプションから有効(オート)もしくは無効(マニュアル)を操作できます。

ただしあくまで自動生成されるものなので詳細な設定やアプリ機能の利用を行いたい場合は手動で作成し、反映させる必要があります。
プロビジョニングプロファイルの作成方法
実際にプロビジョニングプロファイルを手動で作成し、Xcode(アプリプロジェクト)に反映させるところまでの流れを見ていきます。今回は開発用(Development)のものを作成していきます。配布用(Distribution)も基本的な流れは同じです。
- CSRファイル(証明書発行に必要)
- 証明書
- AppID
- DeviceID
操作するのは「キーチェーンアクセス」と「Apple Developer Program」です。
CSRファイルの作成
CSRファイルはMacにデフォルトでインストールされている「キーチェーンアクセス」を使用して作成します。

キーチェーンアクセスを起動させたら上部のメニューから「キーチェーンアクセス」>「証明書アシスタント」>「認証局に証明書を要求...」をクリックします。

以下の画面になったら必要事項を記述していきます。入力できたら「続ける」をクリックします。
- ユーザーのメールアドレス:自身のメールアドレス
- 通称:任意の名前(いじらないでOK)
- CAのメールアドレス:空白のまま
- 要求の処理:ディスクに保存
- 鍵ペア情報を指定:チェック

保存先を問われるので任意の場所を指定します。私はデスクトップに「証明書」フォルダを作成しその中に格納しておきました。続いて鍵ペア情報を確認して「続ける」をクリックします。

無事に作成されたら完了です。

証明書(.cerファイル)の作成
証明書を作成するためにApple Developer Programにログインします。

- 「Certificates, IDs & Profiles」をクリック
- 左メニューの「Certificates」をクリック
- をクリック
- 「iOS App Development」にチェックをいれ、「Continue」をクリック
- 「Choose File」をクリックして、先ほど作成したCSRファイルを選択し、「アップロード」をクリック
- 証明書が作成されるので「Download」をクリック
- 「証明書」フォルダの中に格納
またここまでの作業は初回のみでOKです。作成した2つのファイルは削除せずに保管しておきましょう。以下からは対象のアプリごとにプロビジョニングプロファイルを作成するための作業になります。
※ 証明書(.cerファイル)の作成方法はキーチェーンアクセスとADPを使用する方法とXcodeから作成する方法があります。キーチェーンアクセス側から作成したファイルがうまくいかないと場合はXcodeから作成してみてください。
App IDの作成
引き続きApple Developer Programから「App ID」を作成していきます。ここではプロジェクトの「Bundle Identifier」が必要になります。
- 「Certificates, IDs & Profiles」をクリック
- 左メニューの「Identifiers」クリック
- をクリック
- 「App IDs」を選択して「Continue」ボタンをクリック
- 「Select a type」と表示されたら「App」を選択して「Continue」ボタンをクリック
- 「Description」に「IDの説明」を入力(例:TestNoticeApp)
- 「Bundle ID」として「Explicit」を選択
- 下の入力欄にアプリ作成時に設定した「Bundle Identifier」を入力
- 「Capabilities(アプリ実行に必要な権限)」の中に追加したい機能があればチェック
- 「Continueボタン」をクリック
- 「Registerボタン」をクリック

デバイスの登録
デバイスの登録はiOSアプリ開発を進めていてXcodeから実機へビルドしたことがある人はすでに登録されている場合もあると思います。「Devices」から登録されているか確認してみてください。

おすすめ記事:【Xcode】実機のiPhoneに自作アプリをビルドする方法!
未登録の場合
- 「Certificates, IDs & Profiles」をクリック
- 左メニューの「Devices」クリック
- をクリック
- 「Platform」は「iOS, tvOS, WatchOS」を選択
- 端末の「Device Name(任意の名称でOK)」と「Device ID(UDID)」を入力
- Device ID(UDID)の確認のためMacとiPhoneをライトニングケーブルで接続
- Xcodeを開く
- 「Window」>「Devices and Simulators」をクリック
- 「identifier」がUDIDなのでコピペ
- 「Continue」をクリック
- 「Register」をクリック
プロビジョニングプロファイルの作成
これで「証明書+AppID+Device ID(UDID)」の3つが揃ったのでプロビジョニングプロファイルを作成します。
- 「Certificates, IDs & Profiles」をクリック
- 左メニューの「Profiles」クリック
- をクリック
- 「Development」の「iOS App Development」を選択し、「Continue」をクリック
- 対象のApp IDを選択し、「Continue」をクリック
- 対象の開発用証明書を選択し、「Continue」をクリック(識別しにくいので注意)
- 対象の端末を選択し、「Continue」をクリック
- 最後に「Provisioning Profile Name」にファイル名入力(例:TestNoticeApp Provisioning Profiles)
- 内容を確認し「Generate」をクリックします
- プロビジョニングプロファイルが作成されたので「Download」をクリック
- 「証明書」フォルダの中に格納



Xcodeへの反映
最後にXcode(アプリプロジェクト)に反映させていきます。「TARGETS」>「Signing & Capabilities」から「Automatically manage signing」のチェックを外し、None
となっている「Provisioning Profiles」を先ほどダウンロードしたプロビジョニングプロファイルに変更します。

設定できたら念の為上部メニューから「Product」>「Clean Build Folder」してDerivedDataをリセットしておきます。
おすすめ記事:【Xcode】DerivedDataとは?「Build Failed」の解決方法!
Provisioning profile "Provisioning Profilesの名前" doesn't include signing certificate "証明書の名前)".
設定後にアプリをビルドしようとすると以下のようなエラーが発生する場合があります。
Provisioning profile "Provisioning Profilesの名前" doesn't include signing certificate "証明書の名前".
翻訳:プロビジョニング プロファイル「Provisioning Profiles の名前」には、署名証明書「証明書の名前」が含まれていません。
エラーメッセージからはハッキリとした原因は分かりませんが以下のような可能性が挙げられます。
- 証明書が存在しない
- 証明書が期限切れを起こしている
- 重複した証明書が存在する
- 紐付けているBundle Identifierが異なる
解決法
- Xcodeを再起動する
- Clean Build Folderを実行
- 証明書を作り直す
- CSRファイルを作り直す
.p12ファイルの作成と用途
証明書(.cer)ファイルはキーチェーンに登録されており、書き出すことで.p12ファイルを作成することができます。


ここで保存をクリックするとパスワードを求められますが未入力で「OK」をクリックすればOKです。

.p12ファイルは、証明書を格納するために使用される証明書のデジタルファイル形式の1つです。正確にはPKCS#12(Public-Key Cryptography Standards #12)という形式で、,証明書と関連する秘密鍵を含むデジタル署名形式であり、拡張子が「.pfx」または「.p12」で終わります。
この.p12ファイルを別の開発者に共有することで開発を委託することも可能です。その際にはプロビジョニングプロファイルも必要になります。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。