プロビジョニングプロファイル、証明書に関する私の理解は正しいですか(開発中)?
まず、Xcodeでプロビジョニングプロファイルを選択すると誤解を招きます。 Xcodeでのビルドは、実際にはプロファイルとは何の関係もありません。実際に起こることは、Xcodeがプロファイル内の公開鍵証明書をキーチェーン内の証明書と照合し、秘密鍵を使用して実行可能ファイルに署名することです。これは、沼地標準のMach-O実行可能署名です。これは、Xcode 5で明確にするために変更した理由でもあります。これは、プロファイルのエラー(署名IDが見つからない)の原因でもあります。これは、Xcodeがプロファイル内のいずれかの公開キーに対応する秘密キーを見つけられなかったことを意味します。
個人の開発者証明書は標準のPKIのものです。 Macは、Appleが秘密鍵を知らない方法で(SSL証明書の要求と同様に)Appleに証明書の要求を送信します。 Appleは証明書を生成し、キーチェーンはそれを元のリクエストと照合して、証明書の公開鍵と秘密鍵を提供します。個々の開発者用にプロファイルが作成されると、その開発者の公開鍵がリストされます。チームプロファイルが作成されると、選択したすべてのチームメンバーの公開鍵が含まれます。これにより、チームメンバーは実行可能ファイルに署名できますが、署名者の名前は個人ではなくチーム名になります。
IOSが実行可能ファイルを起動するとき、最初に署名をチェックします。署名がApple App Storeによって署名されている場合、実行されます。
そうでない場合は、インストールされているプロビジョニングプロファイルを確認します。プロファイルには次のものが含まれます。1.開発者証明書のリスト2.アプリID 3.付与する資格(iCloud、ゲームセンターなど)4.デバイスのUDIDのリスト5.すべてがまとめられ、Appleによって署名されます。
プロファイルがチェックされ、Appleのキーで署名されていることが確認されます(Appleの公開キーを使用)。次に、現在のデバイスのUDIDがリストにあることを検証します。また、アプリケーションIDが一致することも検証します(ワイルドカードは使用できます)。次に、Mach-O署名を有効な開発者証明書の公開鍵のリストと照合します。それらのいずれかが一致する場合、実行可能ファイルが実行され、リストされている資格が付与されます。そうでない場合は、ブロックされます。
テキストエディターで.mobileprovisionファイルを開くことを強くお勧めします。あなたはたくさん学ぶでしょう!