Codesignエラー:証明書IDが2回表示される


103

CodeSignエラー:証明書ID「iPhone Developer:XXXX(12345678)」がキーチェーンに複数回表示されます。codesignツールでは、1つだけが必要です。

キーチェーンに行って削除します。しかし、Xcode 4を再起動するたびにこのエラーが発生し、一部のアプリが期限切れの古い証明書をキーチェーンに追加し直しています。なぜ、どのアプリのアイデアですか?


回答:


99

私は同じ問題を抱えていました。修正されました。アプリを送信し、アプリに署名するための証明書をいくつかインストールした後です。

クイックフィックス:KEYCHAIN ACCESSを開き、[MY CERTIFICATES]をクリックします。iPhone開発者:が表示されます。あなたはおそらくそれを2回見るでしょう!有効期限が最も早いものを選択し、右クリックして[削除]を選択します。

まだの場合はXcodeを再起動します。現在動作します。:)

ハッピーコーディング。


27
もう一歩!重複する証明書を削除した後、XCodeでオーガナイザーを開き、プロビジョニングプロファイルを更新する必要があります。
Meekohi

@Meekohiプロビジョニングプロファイルを「更新」するとはどういう意味ですか?ありがとう!
abw333 2012

7
Xcodeを再起動すると、古い証明書を削除した後も同じ問題が解決しました。
Maxim Mikheev

Xcode 4(私は4.4.1を持っています)では、古い証明書に関連付けられているすべてのプロビジョニングプロファイルを削除する必要がありました。次に、Xcodeを再起動すると、古い証明書が(魔法のように)キーチェーンに表示されなくなりました。
Roberto

3
1つの追加で動作しました(Xcode 4.6.3を使用しています)。失効した(または失効するのが最も早い)証明書を削除してからXcodeを再起動しましたが、それでも問題が発生しました-古い証明書がなんとかしてKeyChain Accessに再表示されました。そこで、Xcodeを再起動しましたが、開くプロジェクトを選択する前に、KeyChain Accessに戻り、古い証明書が再度存在していたため、削除しました。次に、(既に実行中のXcodeで)プロジェクトを開き、すべてが順調でした-再びビルドできました。
Ed Sinek 2013年

71

単純な削除が機能しない理由を理解したと思います。開発証明書はまだプロビジョニングプロファイルに保存されているため、キーチェーンで証明書を削除した後にXcodeを閉じる/再度開くと、古い証明書が返されるのがわかりました。もう一度削除します。出来た。

単純なプロファイル削除ソリューションは私にとってはうまくいきませんでした。

私の場合に機能した解決策:

  1. Xcodeを終了
  2. キーチェーンアクセスが開いている場合は、開いたままにします。
  3. 今すぐXcodeを起動します。
  4. Xcodeが不平を言っていた証明書が、起動時にキャッシュからキーチェーンに再度追加されることを確認してください。
  5. 先に進んで削除してください。
  6. コンパイルして幸せなコーディング。

3
私は上記の解決策をすべて試しましたが、これがうまくいきました。複数の原因/解決策があるようです。
Nathan Hangen、2012年

+1:XCodeが実際に証明書の「キャッシュ」を保持し、起動時に追加することを確認できます-このように動作するのはひどいです!それは非常に多くの問題を引き起こします!恥ずかしいです、これでこれとの戦いのために何時間もの時間を失ってしまいました!
JRG-Developer

10

私はこの同じ問題に苦労してかなりの時間を費やしました。それを修正するためのすべての試みの後、私は最終的にそれがXcodeのバグであることを理解するようになりました。この投稿は私にそれを修正する手がかりを与えました: 証明書があなたのキーチェーンに魔法のように再表示されます

私の場合、一致する秘密キーはシステムキーチェーン内にあり、自分の名前が記載されていました(プロビジョニング用かどうかはわかりません)。そうしなければならなかった:

  • 関連する秘密鍵を「ログイン」キーチェーンに移動します
  • Xcodeを再起動し、秘密鍵が関連付けられているように表示されていることに気付きました(それが何のためにあるかを確認します)
  • 証明書と秘密鍵を削除する
  • Xcodeとpoofを再起動します。古い証明書の追加を停止しました

興味深い所見として、証明書を削除しても、関連付けられている秘密鍵は削除されません。視覚的には、証明書の下に秘密鍵が表示されます。だまされてはいけません。

幸運を!


秘密鍵の削除も私にとってはうまくいきました-最新のxcode 2012年10月更新マウンテンライオン
ina



3

xcode45-DP1でも同じ問題があります。これは私にとってはうまくいきます:

  1. アカウントに関連するすべての証明書をキーチェーンから削除します。QUITキーホルダー

  2. xcode:organizer:device:Library:provisioningプロファイルから、アカウントに関連するすべてのプロビジョニングプロファイルを削除します。QUIT xcode

  3. 証明書を取り消して再生成し、ビルドマシンにダウンロードします

  4. プロビジョニングプロファイルをダウンロードする前に、ダウンロードボタンの横にある[ 編集 ]をクリックして、名前が選択されていることを確認します。

  5. 次に、プロビジョニングプロファイルをダウンロードします。

  6. 証明書をダブルクリックしてキーチェーンにインストールします

  7. プロビジョニングプロファイルをxcode:organizer:device:Library:provisioningプロファイルにドラッグします

  8. xcodeの更新ボタンをクリックしないでください。

  9. ビルドを行います。


3

答えはこちら

Organizerで古い証明書を使用して古いプロビジョニングプロファイルをすべて削除してから、XCodeを終了し、キーチェーンから古い証明書を削除して、XCodeを再起動します。

プロビジョニングプロファイルでへの参照がある場合、xcodeは証明書を保持するように見えます


1

キーチェーンにゾンビ証明書が再入力され、証明書IDが2回表示されるという問題がありました。重複する証明書を削除するだけでは機能しませんでした。

Xcodeで、ターゲットのコード署名を調べたところ、「アドホック」ビルドと「リリース」ビルドでは異なる配布プロファイルがあったことを思い出しました。

新しい証明書を生成したとき、アドホックビルド用の新しいプロファイルのみをダウンロードしました。リリースビルド用ではありません。

Xcodeは両方のプロファイルの証明書にぶら下がっていたため、Xcodeが原因で証明書が重複していました...プロファイルを適切に更新するのを忘れたためです。

すべてのプロビジョニングプロファイルを新しい証明書に更新し、すべてのプロファイルをXcodeで同時に変更してください。

すべてのプロビジョニングプロファイルを新しい証明書で更新してください。更新しない場合、Xcodeは両方のプロファイルの証明書をキーチェーンに入れようとします...重複エラーが発生します!


1

私はこの問題を抱えており、それに関するすべての情報を読み、最終的に自分で解決策を見つけました。人々が言及し損ねたのは、Xcodeオーガナイザーで証明書をクリーニングする、およびキーチェーンの期限切れのキーをクリーニングするに、プロビジョニングポータルに期限切れの証明書がないことを確認する必要があることです。古い開発者証明書を使用した古いアプリの有効期限が切れた証明書が1つでもある場合、Xcodeは最初のビルドでそれをオーガナイザーに引き込み、そこからキーチェーンに移動して重複を引き起こします。


1

私の場合、Xcodeが見ていた「キャッシュ」は、接続されたiOSデバイスでした。これが問題であるかどうかを判断するには:

  1. すべてのiOSデバイスを切断する
  2. キーチェーンアクセスから問題の証明書と秘密キーを削除する
  3. Xcodeを再起動します
  4. キーチェーンアクセスを確認します。私の場合、複製はこの時点では再作成されませんでした。
  5. iOSデバイスを再接続する
  6. Xcodeを再起動します
  7. キーチェーンアクセスを確認します。私の場合、この時点で複製が再作成されました。

これが根本的な原因である場合は、Xcodeを起動する前にiOSデバイスの接続を確実に解除することで回避できます。


0

冗長な証明書を削除するだけではうまくいきませんでした。xcodebuildが呼び出されるたびに、どこかキャッシュからキーチェーンの証明書を「再作成」しているようです... aviと同じ問題です。ハック/修正を作成し、ファイルがキャッシュされている場所を見つけようとしましたそしてそれをクリアしましたが、運がありませんでした。結局、私にとってうまくいったこと(少しハックはありますが、他に何ができるか)は、証明書番号が何であるかを理解し、xcodebuildが呼び出された直後にキーチェーンから手動でそれを削除することでした。最初に、/ usr / bin /ディレクトリ(または、xcodebuildファイルのあるディレクトリであれば、which xcodebuild)に移動して、次のコマンドを実行します。

sudo mv xcodebuild xcodebuild_actual

次に、次のコードを使用して、お気に入りのエディター(sudoを忘れないでください)を使用してファイルを作成します。

xcodebuild_actual $* &
echo "xcodebuild started, waiting to wipe certificate, 10 seconds"
sleep 2
echo "Wiping Certificate..."
sudo security -v delete-certificate -t -Z 407629F811D52C0BB7AD31BBB18DCB496354B05E

注:パスワードを入力しなくてもこの特定のコマンドを実行できるようにするには、sudoersファイルを変更する必要があります。

上記の-Zの後の16進数のIDを、問題のゾンビ証明書の16進数のIDに置き換えます。最後に、xcodebuildファイルが実行可能であることを確認します。

sudo chmod 755 xcodebuild 

これで、キーチェーンを開いてビルドコマンドを実行し、問題のゾンビ証明書が復活する様子を観察し、コード署名の問題になる前に要約してショットガンできます。うまくいけば、Appleはこれに対する本当の修正を思い付くでしょう。


0

私の場合、証明書の削除は機能しませんでした。XCode 4はそれらをキャッシュまたは復元しているようです。最終的に私にとってうまくいったトリックは、キーチェーンとxcodeを実行することでした。次に、キーチェーンで2つの証明書(dev + dist)を「ログイン」から「システム」にドラッグします。その後、重複が魔法のように再表示され、それらを削除することができた後、証明書をドラッグして「ログイン」に戻しました


0

とても簡単です。正しい証明書をデスクトップにエクスポートしてください。キーチェーン内のその証明書を削除します。エラーメッセージのあるソースをビルドしてみてください(証明書はありません。)次に、証明書を再度インポートします。=>成功!


0

不要になった証明書のキーチェーンにある秘密キーの1つを削除しました。

証明書は再表示されますが、秘密キーは再表示されません。有効な証明書を確認すると、証明書が1つだけ表示され、秘密鍵が削除された他の証明書は有効な証明書の下に表示されなくなります。

これがこの問題を解決する最も簡単な方法だと思います。


0

私は同じ問題を一度扱っていました。また、xcodeの[オーガナイザー]タブから未使用のプロビジョニングプロファイルを削除することで解決しました。実際には、キーチェーンはこのプロビジョニングプロファイルからその証明書を取得します。このプロファイルは、期限切れの証明書または失効した証明書によるビルドのいずれかです。

したがって、このプロビジョニングプロファイルを[オーガナイザ]タブから削除する必要があります。オーガナイザーは、xcodeの右上のボタンにあります。それを開いて、オーガナイザーより、使用していないプロビジョニングプロファイルを削除してください。

これがスクリーンショットです

ここに画像の説明を入力してください

そして、キーチェーンから余分な証明書を削除することを忘れないでください。その後、それらの証明書は再び表示されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.