it-swarm.com.de

Codesign-Fehler: Die Zertifikatsidentität wird zweimal angezeigt

CodeSign-Fehler: Die Zertifikatidentität "iPhone Developer: XXXX (12345678)" wird mehrmals im Schlüsselbund angezeigt. Für das Codesign-Tool ist nur eines erforderlich.

Also gehe ich zu meinem Schlüsselbund und lösche ihn. Aber ich erhalte diese Fehlermeldung jedes Mal, wenn ich Xcode 4 neu starte und eine App das abgelaufene alte Zertifikat wieder in den Schlüsselbund einfügt. Irgendwelche Ideen warum und welche App?

104
Mugunth

Ok, fand die Antwort auf eine andere "Verwandte" Frage. Problem mit abgelaufenem Xcode-Zertifikat Bekanntes Problem mit Xcode 4 http://openradar.appspot.com/917328

4
Mugunth

Ich hatte gerade das gleiche Problem. Es wurde behoben. Es kam, nachdem ich eine App eingereicht und ein paar Zertifikate installiert hatte, um die App zu signieren.

Schnellkorrektur: Öffnen Sie KEYCHAIN ​​ACCESS> klicken Sie auf MEINE ZERTIFIKATE> dort sehen Sie wahrscheinlich iPhone Developer:. Sie werden es wahrscheinlich ZWEIMAL sehen! Wählen Sie das Datum mit dem frühesten Ablaufdatum aus, klicken Sie mit der rechten Maustaste und wählen Sie LÖSCHEN.

Starten Sie Xcode neu, wenn Sie dies nicht getan haben. Funktioniert jetzt. :)

Fröhliche Codierung.

99
Louie

Ich denke, ich habe herausgefunden, warum das einfache Löschen nicht funktioniert. Da das Entwicklerzertifikat immer noch im Bereitstellungsprofil gespeichert ist, wurde beim Schließen/erneuten Öffnen des Xcodes nach dem Löschen des Zertifikats im Schlüsselbund das alte Zertifikat wiederhergestellt. Also lösche ich es wieder. Es funktionierte.

Das einfache Löschen der Profillösung hat bei mir nicht funktioniert.

Lösung, die in meinem Fall funktioniert hat:

  1. Beenden Sie Xcode
  2. Wenn der Schlüsselbundzugriff geöffnet ist, lassen Sie ihn geöffnet.
  3. Starte jetzt Xcode.
  4. Stellen Sie sicher, dass das Zertifikat, über das sich Xcode beschwert hat, beim Start aus dem Cache erneut in den Schlüsselbund eingefügt wird.
  5. Gehen Sie vor und löschen Sie es.
  6. Kompilieren und fröhliches Codieren.
71
Mobilewits

Ich habe gerade eine ganze Menge Zeit damit verbracht, mich mit dem gleichen Thema zu beschäftigen. Nach all den Versuchen, das Problem zu beheben, wurde mir klar, dass es sich um einen Fehler in Xcode handelt. Dieser Beitrag gab mir einen Hinweis, wie ich das Problem beheben kann: Zertifikate erscheinen magischerweise wieder in Ihrem Schlüsselbund

In meinem Fall befand sich der passende private Schlüssel im Systemschlüsselbund und hatte nur meinen Namen darauf (schwer zu sagen, dass er für die Bereitstellung bestimmt war). Ich musste:

  • Verschieben Sie den zugehörigen privaten Schlüssel in den Anmelde-Schlüsselbund
  • Xcode neu gestartet und festgestellt, dass der private Schlüssel jetzt als zugeordnet angezeigt wird (bestätigt, wofür er gedacht ist)
  • Löschen Sie das Zertifikat und den privaten Schlüssel
  • Starten Sie Xcode und poof neu! Mein altes Zertifikat wurde nicht mehr hinzugefügt

Eine interessante Beobachtung ist, dass beim Löschen des Zertifikats der zugehörige private Schlüssel nicht gelöscht wird. Visuell wird der private Schlüssel unter dem Zertifikat angezeigt. Lass dich nicht täuschen.

Viel Glück!

9
Sean Aitken

Wenn Sie Mitglied der iOS Developer- und Enterprise iOS Developer-Programme sind und für beide Anwendungen denselben Firmennamen eingegeben haben, erhalten Sie zwei gültige Distributionszertifikate mit demselben Namen.

Ich glaube, dass diese Frage diese Situation anspricht: CodeSign-Kollisionen zwischen Developer und Enterprise Distribution

4
Josh Metcalfe

Ich habe das gleiche Problem mit xcode45-DP1. das funktioniert bei mir:

  1. entfernen Sie alle Zertifikate, die sich auf Ihr Konto beziehen, aus dem Schlüsselbund. Beenden Sie Schlüsselbund

  2. entfernen Sie alle Bereitstellungsprofile für Ihr Konto aus xcode: organizer: device: Library: Bereitstellungsprofile. Beenden Sie xcode

  3. sperren Sie Ihr Zertifikat, generieren Sie es neu und laden Sie es auf Ihren Build-Computer herunter

  4. klicken Sie vor dem Herunterladen des Bereitstellungsprofils neben der Schaltfläche zum Herunterladen auf Bearbeiten, um sicherzustellen, dass Ihr Name ausgewählt ist.

  5. Laden Sie dann das Bereitstellungsprofil herunter

  6. doppelklicken Sie auf das Zertifikat, um es auf dem Schlüsselbund zu installieren

  7. ziehen Sie das Bereitstellungsprofil zu xcode: organizer: device: Library: provisioning profiles

  8. klicken Sie nicht auf die Schaltfläche "Aktualisieren" im Xcode.

  9. mach den Build.

3
ccs

Die Antwort ist hier

entfernen Sie alle meine alten Bereitstellungsprofile mithilfe des alten Zertifikats mit Organizer. Beenden Sie dann XCode, entfernen Sie das alte Zertifikat aus dem Schlüsselbund und starten Sie XCode neu.

sieht so aus, als würde der xcode Zertifikate behalten, wenn Sie Verweise auf die in den Bereitstellungsprofilen haben

3
yeahdixon

In meinem Fall war der "Cache", den Xcode betrachtete, ein angeschlossenes iOS-Gerät. So stellen Sie fest, ob dies das Problem für Sie ist:

  1. Trennen Sie alle iOS-Geräte
  2. Löschen Sie das fehlerhafte Zertifikat und den privaten Schlüssel aus dem Schlüsselbund
  3. Starten Sie Xcode neu
  4. Überprüfen Sie den Schlüsselbundzugriff: In meinem Fall wurde das Duplikat zu diesem Zeitpunkt NICHT neu erstellt
  5. Schließen Sie das iOS-Gerät erneut an
  6. Starten Sie Xcode erneut
  7. Schlüsselbundzugriff prüfen: In meinem Fall wurde das Duplikat zu diesem Zeitpunkt neu erstellt

Wenn dies die Hauptursache für Sie ist, können Sie dies umgehen, indem Sie die Verbindung zu iOS-Geräten trennen, bevor Sie Xcode starten.

1
Simon Whitaker

Ich hatte Probleme damit, dass Zombie-Zertifikate in meinen Schlüsselbund eingefügt wurden und die Zertifikatsidentität zweimal angezeigt wurde. Das einfache Löschen des doppelten Zertifikats hat nicht funktioniert.

Als ich in Xcode meine Codesignatur im Ziel betrachtete, fiel mir ein, dass ich in "Ad-hoc" -Erstellungen ein anderes Verteilungsprofil hatte als in "Release" -Erstellungen.

Bei der Erstellung eines neuen Zertifikats habe ich nur ein neues Profil für Ad-hoc-Builds und nicht für Release-Builds heruntergeladen.

Xcode hing für beide Profile am Zertifikat und Xcode verursachte daher doppelte Zertifikate ... weil ich vergessen hatte, meine Profile richtig zu aktualisieren.

Stellen Sie sicher, dass ALLE Ihre Bereitstellungsprofile auf das neue Zertifikat aktualisiert werden, und ändern Sie ALLE Profile gleichzeitig in Xcode.

Be sure to update all your provisioning profiles with the new certificate, otherwise Xcode will try to put the certificate for BOTH profiles in the keychain... causing the duplicate error!

1
karlbecker_com

Ich hatte dieses Problem und las jede Information darüber, schließlich habe ich die Lösung selbst gefunden. Was die Leute nicht erwähnt haben ist, dass VOR die Zertifikate im Xcode Organizer säubert und VOR Wenn Sie die abgelaufenen Schlüssel in Ihrem Schlüsselbund löschen, müssen Sie sicherstellen, dass im Provisioning Portal keine abgelaufenen Zertifikate vorhanden sind. Wenn Sie auch nur ein abgelaufenes Zertifikat für eine alte App haben, die das alte Entwicklerzertifikat verwendet, zieht Xcode dieses beim ersten Erstellen in den Organizer und von dort aus wird es zu Ihrem Schlüsselbund und verursacht ein Duplikat.

1
Segev

Einfach das redundante Zertifikat löschen hat bei mir nicht funktioniert. Es scheint, dass jedes Mal, wenn xcodebuild aufgerufen wird, das Zertifikat im Schlüsselbund aus einem Cache "neu erstellt" wird ... dasselbe Problem wie avi Ich habe einen Hack/Fix dafür erstellt, versucht Finden Sie heraus, wo die Datei zwischengespeichert wurde, und löschen Sie sie, hatten aber kein Glück. Am Ende funktionierte es für mich (ein kleiner Hack, aber hey, was können Sie noch tun), die Zertifikatsnummer herauszufinden und sie kurz nach dem Aufruf von xcodebuild manuell aus dem Schlüsselbund zu entfernen. Wechseln Sie zunächst in Ihr/usr/bin/-Verzeichnis (oder in das Verzeichnis, in dem sich Ihre xcodebuild-Datei befindet, versuchen Sie which xcodebuild) und führen Sie den folgenden Befehl aus:

Sudo mv xcodebuild xcodebuild_actual

Dann erstelle eine Datei mit deinem Lieblingseditor (Sudo nicht vergessen) mit folgendem Code:

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

Hinweis: Sie müssen Ihre sudoers-Datei ändern, um Zugriff auf diesen speziellen Befehl zu erhalten, ohne ein Kennwort eingeben zu müssen.

Ersetzen Sie die hexadezimale Identität nach -Z durch die hexadezimale Identität des fehlerhaften Zombie-Zertifikats. Stellen Sie schließlich sicher, dass die xcodebuild-Datei ausführbar ist:

Sudo chmod 755 xcodebuild 

Sie können jetzt Ihren Schlüsselbund öffnen, den Befehl build ausführen und beobachten, wie das fehlerhafte Zombiezertifikat wiederbelebt wird, und anschließend die Schrotflinte abfeuern, bevor es zu einem Problem für die Codesignierung wird. Hoffentlich wird Apple eine echte Lösung dafür finden.

0
BadPirate

Ich habe gerade einen der privaten Schlüssel in meinem Schlüsselbund für das Zertifikat gelöscht, den ich nicht mehr benötige.

Obwohl das Zertifikat erneut angewendet wird, wird der private Schlüssel nicht erneut angezeigt. Überprüfen Sie nun, ob die Zertifikate gültig sind, und es wird nur ein Zertifikat angezeigt. Die anderen Zertifikate, deren privater Schlüssel gelöscht wurde, werden nicht mehr unter den gültigen Zertifikaten angezeigt.

Ich denke, dies ist der einfachste Weg, um dieses Problem zu lösen.

0
swathy valluri

Ich hatte einmal mit dem gleichen Problem zu tun. Und ich habe es gelöst, indem ich unbenutzte Bereitstellungsprofile von der Registerkarte "Organizer" in xcode entfernt habe. Tatsächlich erhält Keychain das Zertifikat von diesem Bereitstellungsprofil, bei dem es sich entweder um ein abgelaufenes Zertifikat oder um das von Ihnen gesperrte Zertifikat handelt.

Sie müssen dieses Bereitstellungsprofil also nur auf der Registerkarte "Organizer" löschen. Der Organizer befindet sich auf der rechten oberen Seite von xcode. Öffnen Sie es und entfernen Sie dann im Organizer die Bereitstellungsprofile, die Sie nicht verwenden.

Hier ist der Screenshot,

enter image description here

Und vergessen Sie nicht, zusätzliches Zertifikat aus dem Schlüsselbund zu entfernen, aber danach wird dieses Zertifikat nicht mehr angezeigt.

0
Dilip

In meinem Fall hat das Löschen der Zertifikate nicht funktioniert. XCode 4 scheint sie zwischenzuspeichern oder wiederherzustellen. Der Trick, der letztendlich für mich funktionierte, war, Schlüsselbund und Xcode laufen zu lassen. Ziehen Sie dann im Schlüsselbund meine 2 Zertifikate (dev + dist) von "login" auf "system". Dann tauchten die Duplikate auf magische Weise wieder auf und ich konnte sie löschen. Dann zog ich die Zertifikate zurück zu 'login'.

0
Peter

Es ist sehr einfach, das richtige Zertifikat auf Ihren Desktop zu exportieren. Löschen Sie das Zertifikat im Schlüsselbund. Versuchen Sie, die Quelle mit einer Fehlermeldung zu erstellen (haben Sie kein Zertifikat). Importieren Sie anschließend das Zertifikat erneut. => Erfolg!

0
Giang