CodeSign-Fehler: Die Zertifikatidentität 'iPhone Developer: XXXX (12345678)' wird mehrmals im Schlüsselbund angezeigt. Für das Codesign-Tool muss nur eines vorhanden sein.
Also gehe ich zu meinem Schlüsselbund und lösche ihn. Ich erhalte diesen Fehler jedoch 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?
iphone
objective-c
xcode4
code-signing
Mugunth
quelle
quelle
Antworten:
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 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. :) :)
Viel Spaß beim Codieren.
quelle
Ich glaube, ich habe herausgefunden, warum das einfache Löschen nicht funktioniert. Da das Entwicklungszertifikat 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 zurückgegeben. 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:
quelle
Ich habe gerade ziemlich viel Zeit damit verbracht, mich mit demselben Problem zu beschäftigen. Nach all den Versuchen, das Problem zu beheben, wurde mir endlich klar, dass es sich um einen Fehler in Xcode handelt. Dieser Beitrag gab mir einen Hinweis, um es zu beheben: Zertifikate erscheinen auf magische Weise wieder in Ihrem Schlüsselbund
In meinem Fall befand sich der passende private Schlüssel im Systemschlüsselbund und hatte nur meinen Namen (schwer zu sagen, dass er für die Bereitstellung bestimmt war). Ich musste:
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!
quelle
Ok, fand die Antwort auf eine andere "Verwandte" Frage. Problem mit abgelaufenem Xcode-Zertifikat Bekanntes Problem mit Xcode 4 http://openradar.appspot.com/9173280
quelle
Wenn Sie Mitglied der Programme iOS Developer und Enterprise iOS Developer sind und Ihren Firmennamen für beide Anwendungen gleich eingegeben haben, erhalten Sie zwei gültige Vertriebszertifikate mit demselben Namen.
Ich glaube, diese Frage befasst sich mit dieser Situation: CodeSign-Kollisionen zwischen Entwickler und Enterprise Distribution
quelle
Ich habe das gleiche Problem mit xcode45-DP1. das funktioniert bei mir:
Entfernen Sie alle Zertifikate, die sich auf Ihr Konto beziehen, aus dem Schlüsselbund. Schlüsselbund beenden
Entfernen Sie alle Bereitstellungsprofile, die sich auf Ihr Konto beziehen, aus xcode: organisator: device: Library: Bereitstellungsprofile. Xcode BEENDEN
Widerrufen Sie Ihr Zertifikat, generieren Sie es neu und laden Sie es auf Ihren Build-Computer herunter
Klicken Sie vor dem Herunterladen des Bereitstellungsprofils neben der Schaltfläche zum Herunterladen auf Bearbeiten , um sicherzustellen, dass Ihr Name ausgewählt ist.
Laden Sie dann das Bereitstellungsprofil herunter
Doppelklicken Sie auf das Zertifikat, um es am Schlüsselbund zu installieren
Ziehen Sie das Bereitstellungsprofil auf xcode: organisator: device: Library: Bereitstellungsprofile
Klicken Sie im Xcode nicht auf die Schaltfläche Aktualisieren.
mach den Build.
quelle
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.
Es sieht so aus, als würde der xcode Zertifikate behalten, wenn Sie Verweise auf die in den Bereitstellungsprofilen haben
quelle
Ich hatte Probleme damit, dass Zombie-Zertifikate wieder in meinen Schlüsselbund eingetragen 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.
Als ich ein neues Zertifikat erstellt habe, habe ich nur ein neues Profil für Ad-hoc-Builds heruntergeladen und nicht für Release-Builds.
Xcode hing für beide Profile am Zertifikat, und Xcode verursachte daher die doppelten Zertifikate ... weil ich vergessen hatte, meine Profile ordnungsgemäß zu aktualisieren.
Stellen Sie sicher, dass Sie ALLE Ihre Bereitstellungsprofile auf das neue Zertifikat aktualisieren und ALLE Profile gleichzeitig in Xcode ändern.
quelle
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 Sie VOR dem Bereinigen der Zertifikate in Xcode Organizer und VOR dem Bereinigen der abgelaufenen Schlüssel in Ihrem Schlüsselbund sicherstellen müssen, dass Sie keine abgelaufenen Zertifikate im Bereitstellungsportal haben . Wenn Sie sogar ein abgelaufenes Zertifikat für eine alte App haben, die das alte Entwicklerzertifikat verwendet hat, zieht Xcode dieses beim ersten Build in den Organizer. Von dort geht es zu Ihrem Schlüsselbund und verursacht ein Duplikat.
quelle
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:
Wenn dies die Hauptursache für Sie ist, können Sie dies umgehen, indem Sie sicherstellen, dass Sie die Verbindung zu iOS-Geräten trennen, bevor Sie Xcode starten.
quelle
Das einfache Löschen des redundanten Zertifikats hat bei mir nicht funktioniert. Es scheint, dass jedes Mal, wenn xcodebuild aufgerufen wird, das Zertifikat im Schlüsselbund aus einem Cache irgendwo "neu erstellt" wird ... dasselbe Problem wie bei avi. Ich habe einen Hack / Fix dafür erstellt und versucht herauszufinden, wo die Datei zwischengespeichert wurde und klar, hatte aber kein Glück. Am Ende hat es für mich funktioniert (ein bisschen wie ein Hack, aber hey, was können Sie sonst noch tun), herauszufinden, wie die Zertifikatsnummer lautet, und sie kurz nach dem Aufruf von xcodebuild manuell aus dem Schlüsselbund zu entfernen. Wechseln Sie zunächst in Ihr Verzeichnis / usr / bin / (oder in das Verzeichnis, in dem sich Ihre xcodebuild-Datei befindet, versuchen Sie es
which xcodebuild
) und führen Sie den folgenden Befehl aus:Erstellen Sie dann eine Datei mit Ihrem bevorzugten Editor (vergessen Sie nicht, sudo) mit dem folgenden Code:
Hinweis: Sie müssen Ihre sudoers-Datei ändern, um Zugriff auf die Ausführung dieses bestimmten Befehls zu erhalten, ohne ein Kennwort eingeben zu müssen.
Ersetzen Sie die Hex-Identität nach -Z oben durch die Hex-Identität des betreffenden Zombie-Zertifikats. Stellen Sie schließlich sicher, dass die xcodebuild-Datei ausführbar ist:
Sie können jetzt Ihren Schlüsselbund öffnen, den Build-Befehl ausführen und beobachten, wie das fehlerhafte Zombie-Zertifikat wiederbelebt und dann zusammenfassend mit der Schrotflinte geschossen wird, bevor es zu einem Problem für die Codesignierung wird. Hoffentlich hat Apple eine echte Lösung dafür gefunden.
quelle
In meinem Fall hat das Löschen der Zertifikate nicht funktioniert. XCode 4 scheint sie zwischenzuspeichern oder wiederherzustellen. Der Trick, der schließlich für mich funktionierte, bestand darin, Schlüsselbund und Xcode laufen zu lassen. Ziehen Sie dann im Schlüsselbund meine 2 Zertifikate (dev + dist) von 'login' nach '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'.
quelle
Exportieren Sie ganz einfach das richtige Zertifikat auf Ihren Desktop. Löschen Sie dieses Zertifikat im Schlüsselbund. Versuchen Sie, eine Quelle mit einer Fehlermeldung zu erstellen (haben Sie kein Zertifikat ..). Importieren Sie dann das Zertifikat erneut. => Erfolg!
quelle
Ich habe gerade einen der privaten Schlüssel in meinem Schlüsselbund für das Zertifikat gelöscht, das ich nicht mehr benötige.
Obwohl das Zertifikat erneut angezeigt wird, wird der private Schlüssel nicht erneut angezeigt. Suchen Sie nun nach gültigen Zertifikaten, und es wird nur ein Zertifikat angezeigt, und die anderen Zertifikate, deren privater Schlüssel gelöscht wurde, werden nicht mehr unter gültigen Zertifikaten angezeigt.
Ich denke, dies ist der einfachste Weg, um dieses Problem zu lösen.
quelle
Ich hatte einmal mit dem gleichen Problem zu tun. Und ich habe es gelöst, indem ich nicht verwendetes Bereitstellungsprofil von der Registerkarte "Organizer" in xcode entfernt habe. Tatsächlich erhält Keychain dieses Zertifikat von diesem Bereitstellungsprofil, bei dem es sich entweder um ein abgelaufenes Zertifikat oder um ein vom widerrufenen Zertifikat erstelltes Zertifikat handelt.
Sie müssen dieses Bereitstellungsprofil also nur von der Registerkarte "Organizer" löschen. Der Organizer befindet sich auf der rechten oberen Schaltfläche von xcode. Öffnen Sie ihn und entfernen Sie dann im Organizer die Bereitstellungsprofile, die Sie nicht verwenden.
Hier ist der Screenshot,
Und vergessen Sie nicht, zusätzliches Zertifikat aus dem Schlüsselbund zu entfernen, aber danach wird dieses Zertifikat nicht mehr angezeigt.
quelle