3

はい、はい、この種の別のもの。何が何のためにあるのか、どのように生成するのかなど、すべての一般的な要点を知っています。

ただ私を悩ませているものがあります。基本的に、証明書とプロビジョニング プロファイルの関係は何ですか? これに対する適切な答えを見つけることができませんでした。私が質問している理由は、プロビジョニング プロファイルを作成するときに、それを開発 (開発プロビジョニングの場合) または配布 (アドホックおよびアプリストア プロビジョニングの場合) 証明書と照合するため、プロビジョニング プロファイルが証明書に関連付けられていることを意味すると常に考えていたからです。 .

しかし最近、Flash Builder を使用して Flex アプリケーションをコンパイルしているときに、そうではないか、途中で理解できないことがあることに気付きました。基本的に、開発証明書を選択してアドホック プロビジョニングを使用すると、アプリケーションが正常にコンパイルされ、正常に実行されることに気付きました。配布証明書を使用したアドホック プロビジョニングしか使用できないため、これはできないと常に考えていました。アドホック プロビジョニングが配布証明書に関連付けられている場合、どのようにそれが可能なのでしょうか? 結局、私はiTunes経由でiOSデバイスにアプリをインストールし、それでも動作するので、それはAppleのものに違いない.

実際には、AppStore 用に配布しない限り、必要な証明書/プロビジョニング ファイルの組み合わせを選択でき、appid と udid が適切である限り、アプリケーションはデバイス上で正常にコンパイルおよび実行されるように思われます。 . 明らかに、アドホックおよびアプリストアのプロビジョニングでは、プロセス アタッチメントが無効になり (デバッグ)、プッシュなどのために異なるサービス サーバーがターゲットになりますが、それ以外は問題ありません。では、iOS プロビジョニング ポータルで、特定のプロファイルが証明書に属しているという目に見える一致があるのはなぜですか?

つまり、証明書は懸念事項 (開発者と会社/ディストリビューター) を分離する方法にすぎません。iOS プロビジョニング ポータルでは、チーム エージェントのみが配布証明書とアドホック プロファイルを作成できますが、一度生成されると、エージェントはアドホック プロファイルを開発者に処理し、開発証明書を使用して署名できるように見えます。

すべてを適切に結び付けるのに問題がありますが、それでも意味があります。インターウェブ、助けて!

4

1 に答える 1

5

コード署名のいくつかの側面にナビゲートする非常に負荷の高い質問であるため、質問に一言で答えるのは難しいです(また、キャッシュの問題もあったようです)しかし、あなたの質問は2つの問題に要約されます-

  1. IPA ファイルの作成中に証明書/プロファイル/キーが果たす役割は何ですか?
  2. IPA の実行時に、デバイスはどのように IPA を検証しますか?

Xcode を使用していて、エンタープライズ Apple 開発者アカウントを持っていて、CSR を作成するために「キーチェーン」ユーティリティを使用してゼロから始めているとします。CSR の作成中に、マシンのキーチェーンに実際に追加される 2 つのキー (秘密キーと公開キー) が作成されます。生成され、ローカル マシンに保存される CSR には、提供されたすべての情報 (公開鍵を含む) が暗号化された形式で含まれています。これは、秘密鍵を使用して暗号化されます。

{ あなたの名前 + メールアドレス + 公開鍵} => 秘密鍵を使用して暗号化 => CSR

暗号化された CSR と暗号化されていないバージョンの公開鍵のコピーを Apple に送信すると、Apple はあなたの身元を確認し、CSR があなたによって送信されたものであることを確認できます。公開鍵のみを使用して正常にデコードできる情報。

CSR の検証が成功すると、Apple は CSR を受け取って開発者証明書を作成し、ダウンロードできるようにします。これは基本的に、検証済みの開発者であることを証明する Apple によって署名された「公証された」証明書です。これは、Apple の公開鍵を使用してデコードできる Apple の秘密鍵を使用して署名されたファイルと考えてください。この時点で、あなたの ID と apples の ID が認証されました。

次に、プロビジョニング プロファイルを作成するときに、必要な要素 (udid、dev certs など) を選択する必要があります。

(UDIDS + Dev Certificates + App Identifier + Entitlements) => プロビジョニング プロファイル

次に、このプロファイルをダウンロードして Xcode に追加します (Xcode オーガナイザーを使用)。

署名付き IPA ファイルを作成するためのすべての要素 (キー、プロファイル、証明書) が揃ったので、XCode が介入して検証/バックグラウンド チェックを行います。Xcode がこれを確認する方法は、選択したモバイル プロビジョニング ファイルに埋め込まれている個々の開発者証明書を検査することです。埋め込まれた開発者証明書 (プロビジョニング プロファイル内) ごとに、キーチェーンに秘密鍵/公開鍵があるかどうかを確認します。次に、一致するキーを持つ任意の証明書 (キーチェーン内の一致するキーを持つ開発証明書) を使用して署名プロセスを実行できます。これで、署名済みの IPA が作成されました。IPAの作成プロセス中に物事がどのように結び付けられているかを説明していただければ幸いです. 署名された IPA が実行されるときにこれらがどのように連携するかは、ストーリーのパート 2 です :)

于 2013-05-07T18:59:05.083 に答える