web-dev-qa-db-ja.com

キーチェーンアクセスを使用してコード署名公開キーまたは秘密キーをインポートできない(Mac OS X Mavericks)

(XCodeで)iOSプロジェクトをビルドしようとすると、コード署名IDの同僚の公開鍵と秘密鍵をインポートする必要がありますが、「エラーが発生しました」というキーチェーンアクセスでエラーが発生するため、インポートできませんが発生しました。アイテムをインポートできません。/このアイテムのコンテンツを取得できません

全詳細:

同僚のコンピューターから2つのキーを取得し、キーチェーンから2つのファイルとしてエクスポートしました。

Roomer Inc.p12(秘密キー)

Roomer Inc.pem(公開鍵)

これらをエクスポートしたとき、彼はパスワードを空白のままにしました(ただし、「test」というパスワードで試したところ、同じ結果が得られました)。

Roomer Inc.p12(秘密キー用)をダブルクリックすると、キーチェーンアクセスで開き、キーチェーンを選択するように求められます(デフォルトでは[ログイン]が選択されています)。

「追加」をクリックすると、キーチェーンへのパスワードの入力を求められます(空白のままにします)。

次に、私は常にこのメッセージをキーチェーンアクセスに表示します。

screenshot of error

ただし、このメッセージが表示されているにもかかわらず、[OK]をクリックすると、「Roomer Inc」の新しい秘密キーエントリが表示されます。このエントリは、予想どおり「ログイン」キーチェーンの秘密鍵ですが、有効期限はありません(それが必要ですか?)

次に、Roomer Inc.pemファイル(公開鍵)の場合、キーチェーン(「ログイン」)を選択するように求められ、[追加]をクリックします。

すると、公開鍵に対しても「エラーが発生しました。インポートできません。このアイテムのコンテンツを取得できません」というメッセージも表示されます。ただし、この場合(秘密鍵とは異なり)、追加した内容に対応するエントリは表示されません。

そのため、秘密キーエントリはOKかどうかにかかわらず(確認する方法はありません)、Roomerの公開キーエントリは、このエラーメッセージなしではキーチェーンにインストールできません。セキュリティインポートコマンドを使用して公開鍵をインポートしようとしたことにも注意してください。

$ security import Roomer\Inc.pem -f pkcs12〜/ Library/Keychains/login.keychain

1つのキーがインポートされました。

これを実行すると、コマンドによって「1つのキーがインポートされました」が返されますが、キーチェーンアクセスウィンドウに「Roomer Inc」の公開キーが表示されません(キーチェーンアクセスを閉じて再度開いた)。

いずれにせよ、これがブロッカーであることを確認しました。 (もちろん、XCodeプロジェクトは、TestFlightで使用されるAdHocプロビジョニングプロファイル用にビルドされないという症状です)。 XCodeのビルドとTestFlightのセットアップに関する追加の手順は省略しました。これは、上で説明したように、コアの問題がキーのインポートに関係していると考えられるためです。

18
Jason FB

私たちは問題を解決し、他の人が役に立てるようにここに私の答えを投稿しています。

問題は、キーチェーンアクセスに関するUXの問題です。バックアップして少し説明します。Appleで配布証明書を作成するときは、プライベートキーとアプリベースのアクセス許可に基づいて作成します。

キーチェーンアクセスでは、配布証明書は、作成元の秘密鍵の名前の下に子として表示されます。これが問題です:キーチェーンアクセスで検索ボックスを使用すると(私の場合は、配布証明書の名前なので「Roomer」と入力していました)、その名前の証明書は検索されません。その名前の秘密鍵に添付された証明書。

そのため、配布証明書の名前が "iPhone Distribution:Roomer Inc."であるにもかかわらず、私の同僚は "Jorge Davila"(彼の名前)という名前の秘密キーに基づいて配布証明書を作成していました。

キーチェーンアクセスで「Roomer」を検索したところ、この証明書の作成に使用されたキーの名前が「Roomer」ではなく「Jorge Davila」だったため、正しい検索結果が表示されませんでした。したがって、彼は間違った証明書をエクスポートしていましたが、その名前を持つ他の(期限切れの)証明書があったために気付きませんでした。

正しいものは次のとおりです。 

これは、キーチェーンアクセスのUXで比較的微妙な問題であり、検索ツールでは期待どおりの結果が得られないという事実です。私は、他の人が役に立つと思うことを期待してこの回答を投稿しています。

26
Jason FB