iOS コード サインとプロビジョニングの概要

私は 3 年以上アプリを開発していますが、いまだに私を悩ませていることの 1 つが iOS のコード サインとプロビジョニングです。 Signing Identityとは何でしょうか? なぜ開発者としてProvisioning Profilesを作成し、そのようなことを気にする必要があるのでしょうか? これらの質問に対する良い答えがなく、Apple Docs を読み通したくない場合、この記事は、あなたや私のために、5 分未満ですべてのプロセスを公開するリファレンスになると思います。 ですから、私にとっての最大の問題は、関連する部分をすべて選び出し、すべてがどのように作用するかをわかりやすく示した図表やグラフィックがないことなのです。 このため、この記事の最後にそのような図表を作成してみたいと思います。 始めましょう。

まず、インターネットでプロビジョニングとコードサイニングに関連するものを探そうとすると、必ず出てくる主要な用語を集めましょう。

  • Xcode
  • Member Center
  • Keychain
  • Signing Identity
  • Private & Public Key
  • Provisioning Profile
  • App ID

Xcode &Member Center

iOS 開発者であれば、通常は Xcode を使用してアプリやリソースを作成、管理し、AppStore にアップロードします。 この投稿に従うために、Xcode について知っておく必要があるのはこれだけです。 Xcode

Apple Developer Programに登録すると、Member Centerにログインできるようになります。 ここでは、Provisioning Profiles、App ID、Certificatesなどを作成することができます。 Member Centerの一部は、Xcodeと直接つながっています。 たとえば、Xcode の設定で、Signing Identity を確認および作成したり、Provisioning Profiles をダウンロードおよび更新できます。

Signing Identity, Public & Private Key, Keychain Application

ひとつクリアしなければならないことは、Sign という言葉についてです。 アプリに署名することで、iOS は誰がアプリに署名したかを識別し、署名後にアプリが変更されていないことを確認できます。 Signing Identityは、Appleが作成する公開鍵と秘密鍵のペアで構成されます。 公開鍵はロックオンリーのメカニズムと考え、データを再びラップしたり、ロックを解除したり、デコードしたりするには、秘密鍵を知っている必要があります。

公開鍵と秘密鍵ペアはどこから来て、それらを含む証明書をどのようにして要求するのですか。 この魔法はすべて、Keychain Access アプリケーションで Certificate Signing Request (CSR) を作成するときに起こります。 CSRを作成すると、Keychainアプリケーションは秘密鍵とcertSigningRequestファイルを作成し、あなたはそれをAppleにアップロードすることができます。 Appleはこのリクエストを検証し、あなたのために証明書を発行します。 証明書には、あなたのシステムにダウンロード可能な公開鍵が含まれています。 ダウンロードした後、それをダブルクリックして、キーチェーンアクセスアプリケーションに入れる必要があります。

証明書は Member Center からも入手できますが、公開鍵しか含まれていないので、秘密鍵は安全に保管してください。

開発者または配布用証明書が別の認証局から発行されるように、中間証明書をキーチェーンに入れることも要求されます。 少しわかりにくいようですが、このような仕組みになっています。

Provisioning Profile &App ID

ご存知のように、Apple は物事を安全に保つことを好むので、証明書だけを使って、世の中のすべての iOS 機器にアプリをインストールすることはできません。 そこで、プロビジョニングプロファイルが必要になります。 Provisioning Profile は、アプリケーション コードを実行する各デバイスにインストールする必要があります。 各開発プロビジョニングプロファイルには、iPhone開発用証明書、Unique Device Identifiers、およびApp IDのセットが含まれます。 App IDは、1つの開発チームからの1つまたは複数のアプリケーションを識別するために使用される2つの部分からなる文字列です。

開発用プロビジョニングプロファイルに指定されたデバイスは、そのプロファイルに開発証明書が含まれている個人によってのみテスト用に使用できます。 1 つのデバイスに複数のプロビジョニングプロファイルを含めることができます。 開発プロファイルと配布プロファイルの違いは、配布プロファイルではデバイスIDが指定されないことです。

チャート

以下は、私が作成したチャートです。 もし、私が見逃していることや間違った説明をしていることを発見された方は、ぜひ教えてください。 このように、Provisioning と Code Signing の内部を理解しようとしたのはこれが初めてです。 まだまだ話すべきことはたくさんありますが、このトピックにまつわるすべてのことについては、これが良いスタートだと考えています。

  1. Xcode をインストールして、中間証明書を Keychain にプッシュします
  2. Certificate Signing Request (CSR) は作成されます。
  3. 秘密鍵は CSR の作成とともに生成され、Keychain に保存されます。
  4. CSR は Member Center にアップロードされ、
  5. Apple はすべてを検証して証明書を発行します。
  6. 証明書はコンピューターにダウンロードされ、
  7. 証明書は Keychain に格納されて秘密鍵とペアになって Code Signing ID を作成します。 App ID と Device Identifiers を Xcode にダウンロードし、Xcode がアプリに署名して Provisioning Profiles を Device にプッシュします
  8. iOS はすべてが正しく構成されていることを証明します。つまり、Provisioning Profile には、アプリに署名するために使用した証明書、デバイス UDID、および正しいアプリ ID が含まれていなければなりません。
  9. Your App should be running now!

コメントを残す

メールアドレスが公開されることはありません。