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

この記事からわかること

  • Xcodeプロビジョニングプロファイル(Provisioning Profile)とは?
  • Automatically manage signingとは?
  • 作成方法反映方法
  • エラーProvisioning profile "Provisioning Profilesの名前" doesn't include signing certificate "証明書の名前".解決方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

プロビジョニングプロファイル(Provisioning Profile)とは?

プロビジョニングプロファイル(Provisioning Profile)とはXcodeから設定できるiOSやmacOSアプリを署名して配布するために必要な証明書と設定情報のセットです。基本的には「証明書+AppID+Device ID(UDID)」をまとめたものという認識で良いと思います。

プロビジョニングプロファイルによってアプリの開発者や設定を明確にすることができ、開発したアプリをデバイスでテストしたり、テスターと共有、App Storeを介してユーザーに配布したりすることができます。

含まれている設定情報はアプリの識別子(AppID)や利用制限のためのデバイス情報、アプリの機能(リモート通知など)にアクセスするために必要な権限などが含まれています。

作成は「Apple Developer Program」から行うことが可能になっておりアプリごとに作成や設定が必要になります。

さらにプロビジョニングプロファイルには開発用(Development)と配布用(Distribution)があるので状況に合わせたものを作成、設定する必要があります。

Automatically manage signing

Xcodeでアプリのプロジェクトを作成し、公開する際には必ず必要になってくるプロビジョニングプロファイルですが、複雑なアプリではない場合開発者はあまり意識しなくても良いような仕組みになっています。

本来は手作業で作成するプロビジョニングプロファイルですが、Xcodeには「Automatically manage signing(自動署名管理)」という仕組みがされており、Xcodeにサインインしているアカウントがチームに加入していれば、Bundle IDを元に自動で生成してくれます。

例えば開発用のプロビジョニングプロファイルを自動生成してくれる「Automatically manage signing」の設定は「TARGETS」>「Signing & Capabilities」から有効/無効を操作できます。(デフォルトはチェックが入っており有効になっている)

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

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

【Xcode】provisioning profile failed qualificationの解決法!アーカイブエラー

ただしあくまで自動生成されるものなので詳細な設定やアプリ機能の利用を行いたい場合は手動で作成し、反映させる必要があります。

プロビジョニングプロファイルの作成方法

実際にプロビジョニングプロファイルを手動で作成し、Xcode(アプリプロジェクト)に反映させるところまでの流れを見ていきます。今回は開発用(Development)のものを作成していきます。配布用(Distribution)も基本的な流れは同じです。

操作するのは「キーチェーンアクセス」と「Apple Developer Program」です。

CSRファイルの作成

CSRファイルはMacにデフォルトでインストールされている「キーチェーンアクセス」を使用して作成します。

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

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

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

以下の画面になったら必要事項を記述していきます。入力できたら「続ける」をクリックします。

  1. ユーザーのメールアドレス:自身のメールアドレス
  2. 通称:任意の名前(いじらないでOK)
  3. CAのメールアドレス:空白のまま
  4. 要求の処理:ディスクに保存
  5. 鍵ペア情報を指定:チェック
【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

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

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

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

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

証明書(.cerファイル)の作成

証明書を作成するためにApple Developer Programにログインします。

Apple Developer Programへの登録方法
  1. Certificates, IDs & Profiles」をクリック
  2. 左メニューの「Certificates」をクリック
  3. をクリック
  4. iOS App Development」にチェックをいれ、「Continue」をクリック
  5. Choose File」をクリックして、先ほど作成したCSRファイルを選択し、「アップロード」をクリック
  6. 証明書が作成されるので「Download」をクリック
  7. 証明書」フォルダの中に格納

またここまでの作業は初回のみでOKです。作成した2つのファイルは削除せずに保管しておきましょう。以下からは対象のアプリごとにプロビジョニングプロファイルを作成するための作業になります。

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

App IDの作成

引き続きApple Developer Programから「App ID」を作成していきます。ここではプロジェクトの「Bundle Identifier」が必要になります。

  1. Certificates, IDs & Profiles」をクリック
  2. 左メニューの「Identifiers」クリック
  3. をクリック
  4. App IDs」を選択して「Continue」ボタンをクリック
  5. Select a type」と表示されたら「App」を選択して「Continue」ボタンをクリック
  6. Description」に「IDの説明」を入力(例:TestNoticeApp)
  7. Bundle ID」として「Explicit」を選択
  8. 下の入力欄にアプリ作成時に設定した「Bundle Identifier」を入力
  9. Capabilities(アプリ実行に必要な権限)」の中に追加したい機能があればチェック
  10. Continueボタン」をクリック
  11. Registerボタン」をクリック
【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

デバイスの登録

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

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

おすすめ記事:【Xcode】実機のiPhoneに自作アプリをビルドする方法!

未登録の場合

  1. Certificates, IDs & Profiles」をクリック
  2. 左メニューの「Devices」クリック
  3. をクリック
  4. Platform」は「iOS, tvOS, WatchOS」を選択
  5. 端末の「Device Name(任意の名称でOK)」と「Device ID(UDID)」を入力
  6. Device ID(UDID)の確認のためMacとiPhoneをライトニングケーブルで接続
  7. Xcodeを開く
  8. Window」>「Devices and Simulators」をクリック
  9. identifier」がUDIDなのでコピペ
  10. Continue」をクリック
  11. Register」をクリック

プロビジョニングプロファイルの作成

これで「証明書+AppID+Device ID(UDID)」の3つが揃ったのでプロビジョニングプロファイルを作成します。

  1. Certificates, IDs & Profiles」をクリック
  2. 左メニューの「Profiles」クリック
  3. をクリック
  4. Development」の「iOS App Development」を選択し、「Continue」をクリック
  5. 【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方
  6. 対象のApp IDを選択し、「Continue」をクリック
  7. 【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方
  8. 対象の開発用証明書を選択し、「Continue」をクリック(識別しにくいので注意)
  9. 【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方
  10. 対象の端末を選択し、「Continue」をクリック
  11. 最後に「Provisioning Profile Name」にファイル名入力(例:TestNoticeApp Provisioning Profiles)
  12. 内容を確認し「Generate」をクリックします
  13. プロビジョニングプロファイルが作成されたので「Download」をクリック
  14. 証明書」フォルダの中に格納

Xcodeへの反映

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

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

設定できたら念の為上部メニューから「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 の名前」には、署名証明書「証明書の名前」が含まれていません。

エラーメッセージからはハッキリとした原因は分かりませんが以下のような可能性が挙げられます。

解決法

Xcodeから証明書を発行する

キーチェーンアクセスとApple Developer Programを使用しなくてもXcodeから証明書(.cer)ファイルを作成する方法もまとめておきます。

上部メニューの「Xcode」>「Settings...」>「Accounts」を選択し、開発者アカウントを選択して、右下の「Manage Certificates...」をクリックします。

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

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

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

続いてあとはApple Developer Programから同様の手順でプロビジョニングプロファイルを発行して反映するだけです。

.p12ファイルの作成と用途

証明書(.cer)ファイルキーチェーンに登録されており、書き出すことで.p12ファイルを作成することができます。

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方 【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

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

【Swift】リモート通知実装用の証明書(cer)とプロビジョニングプロファイルの作り方

.p12ファイルは、証明書を格納するために使用される証明書のデジタルファイル形式の1つです。正確にはPKCS#12(Public-Key Cryptography Standards #12)という形式で、,証明書と関連する秘密鍵を含むデジタル署名形式であり、拡張子が「.pfx」または「.p12」で終わります。

この.p12ファイルを別の開発者に共有することで開発を委託することも可能です。その際にはプロビジョニングプロファイルも必要になります。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index