provisioning profileとは?
Appleが発行する電子証明書
iOSアプリ開発をしていると、provisioning profile(プロビジョニングプロファイル)という単語を聞くことがあります。
すでに世の中に情報が出ているのでそちらも使いつつ解説した方が早そう🔍
perplexity.aiに情報をとってきてもらう
プロビジョニングプロファイルとは、iOSアプリ開発時にアプリのインストールや動作を許可するために必要な、Appleが発行する電子証明書の一種です。
プロビジョニングプロファイルの役割
-
アプリごとの「App ID」、開発者の「証明書」、インストールを許可する端末の「デバイスID(UDID)」などをまとめて関連付けることで、開発中のアプリが正規のものであることを証明します。
-
正規の開発者によって署名されたアプリだけが、指定されたiOSデバイスにインストール・起動できるように制御します。
-
アプリが改ざんされていないことを保証し、Appleの開発者プログラムとアプリの信頼性を担保します。
主な利用場面と種類
- Development(開発用): 指定した端末のみで動作。Xcodeから実機テストする際などに使われます。
- Distribution(配布用): App Store経由で一般配布、またはAdHoc(テスト・社内利用限定)やInHouse(企業内で広く利用、エンタープライズ契約のみ)があります。
- 各プロファイルは有効期限があり、テスト端末を追加・変更する場合は再発行が必要です。
プロビジョニングプロファイルの仕組み
- プロファイルにはUUIDが付与され、Macなどの開発環境に保存されます。
- 配布方法や利用目的ごとに異なるファイル(.mobileprovision形式)が生成され、アプリビルド時に署名情報として組み込まれます。
iOSアプリ開発での重要性
- プロビジョニングプロファイルを正しく理解し運用することで、Appleのセキュリティ基準を満たし、安全なアプリ配信・テストが実現できます。
- iOSの厳格なセキュリティ管理の象徴的な仕組みであり、開発者には証明書や秘密鍵、プロファイルの管理が求められます。
このように、プロビジョニングプロファイルはiOSアプリの信頼性・安全性・動作環境制御の中核を担う重要な要素です。
🔗参考になるサイトのリンク
公式の解説も読んでいく
iOSアプリをリリースした人は操作したことある画面の解説が書かれているだけなのですが、画像がないと分かりづらい部分があるので送付しておきます。
開発用プロビジョニングプロファイルを作成する
公式の解説見るとXcodeでやるのかと思いますが、「証明書」なるものはキーチェーンと呼ばれるもので私はいつも作ってました。
Xcodeでアプリに手動で署名するには、開発用プロビジョニングプロファイルを作成する必要があります。
公式の解説
作成するには、事前に、1つまたは複数の開発用証明書、および1つまたは複数の登録済みデバイスが必要です。Xcodeで管理されているアプリIDのいずれかを使用するか、アプリIDを登録することができます。チームメンバーは、Xcodeで開発用証明書を作成し、自分のデバイスを登録できます。または、デベロッパアカウントでチームが使用する複数のデバイスを登録することもできます。
ここでやる👇

🤔これは試したことがない
Ad Hocプロビジョニングプロファイルを作成する(iOS、tvOS、watchOS)
App Store Connectプロビジョニングプロファイルの作成
こちらは、アプリ申請で必要な「プロビジョニングプロファイル」なるものを作成していきます。AppleDeveloperに登録すると入れるページですね。ここで開発したiOSアプリのBundleIDを登録して、プロビジョニングプロファイルを作成して後ほどダウンロードします。
🍎アプリ申請したことがある人が知ってる画面


BundleIDはここで登録する

DriverKit開発用プロビジョニングプロファイルを作成する
ここは使った覚えがないので専門外で触れません。
プロビジョニングプロファイルを編集、ダウンロード、削除する
こちらはタイトルの通りですね。証明書を作りすぎて、fastlaneが使えなくて古い証明書を削除するときにこちらの画面で操作をすることがありました。
もしかしたら削除したらいけないものを消したせいかExpoのアプリに使ってるプロファイル消したかも😱

まとめ
プロビジョニングプロファイルは、iOSアプリの開発や配布時に必要なファイルで、「証明書」「App ID」「端末のUDID」が一体となっています。
これにより、開発者が指定した端末のみで動作を許可し、アプリが正規のものであることを証明できます。
有効期限があるため、期限切れ時は新しいプロファイルを作成または更新して再配布が必要です。

Discussion