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

この記事からわかること
- Xcodeのプロビジョニングプロファイル(Provisioning Profile)とは?
- Automatically manage signingとは?
- 作成方法と反映方法
- エラー:Provisioning profile "Provisioning Profilesの名前" doesn't include signing certificate "証明書の名前".の解決方法
index
[open]
\ アプリをリリースしました /
プロビジョニングプロファイル(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のメールアドレス:空白のまま
- 要求の処理:ディスクに保存
- 鍵ペア情報を指定:チェック

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

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

※ CSRファイルの作成方法はキーチェーンアクセスを使用する方法とXcodeから作成する方法があります。キーチェーンアクセス側から作成したファイルがうまくいかないと場合はXcodeから作成してみてください。
証明書(.cerファイル)の作成
証明書を作成するためにApple Developer Programにログインします。

- 「Certificates, IDs & Profiles」をクリック
- 左メニューの「Certificates」をクリック
- をクリック
- 「iOS App Development」にチェックをいれ、「Continue」をクリック
- 「Choose File」をクリックして、先ほど作成したCSRファイルを選択し、「アップロード」をクリック
- 証明書が作成されるので「Download」をクリック
- 「証明書」フォルダの中に格納
またここまでの作業は初回のみでOKです。作成した2つのファイルは削除せずに保管しておきましょう。以下からは対象のアプリごとにプロビジョニングプロファイルを作成するための作業になります。
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ファイルを作り直す
証明書を作り直す場合は「XcodeからCSR(証明書署名要求)ファイルを発行する」で実行してみてください。私はキーチェーンアクセスで発行した場合エラーが出てしまいましたが、Xcodeから発行する方法でできました。
XcodeからCSRファイルを発行する
キーチェーンアクセスではなくXcodeからCSR(証明書署名要求)ファイルを作成する方法もまとめておきます。
上部メニューの「Xcode」>「Settings...」>「Accounts」を選択し、開発者アカウントを選択して、右下の「Manage Certificates...」をクリックします。

次に左下の「+」ボタンをクリックして必要な証明書(開発用(Development)と配布用(Distribution))を選択し「Create」をクリックして、CSR(証明書署名要求)ファイルを作成します。

続いてあとはApple Developer Programから同様の手順で証明書を発行して反映するだけです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。
個人開発に限界を感じたらiOSに特化したプログラミングスクール「iOSアカデミア」も検討してみてください!無料相談可能で「最短・最速」でiOSエンジニアになれるように手助けしてくれます。