Xcode 4 - installiert die von mir gelöschten Schlüsselbundzertifikate neu

85

Ich erhalte diesen Fehler:

CodeSign-Fehler: Die Zertifikatidentität 'iPhone Developer: XXX' wird mehrmals im Schlüsselbund angezeigt. Für das Codesign-Tool muss nur eines vorhanden sein.

Zuerst mache ich mir aber keine Sorgen, ich werde einfach in den Schlüsselbund gehen und das doppelte (ältere) löschen, was ich getan habe. Ich ging zurück, schloss Xcode, öffnete Xcode und Projekt erneut, der gleiche Fehler. wtf ich für mich. Zurück in den Schlüsselbund und das Zertifikat ist wieder da. Ich lösche beide Zertifikate, wiederhole und stelle beim Laden des Projekts fest, dass die beiden von mir gelöschten Zertifikate wieder in den Schlüsselbund eingefügt werden.

Nach langem Suchen stellte ich sicher, dass ich das Zertifikat nicht im Systemschlüsselbund hatte, was ich nicht tat. Hat auch sauber gemacht und wieder aufgebaut. Wenn ich Duplikate mit Xcode 3 hatte, konnte ich das Duplikat des Schlüsselbunds einfach bereinigen und ich war gut. Aber mit Xcode 4 werden sie buchstäblich nur irgendwie neu installiert, wenn ich das Projekt öffne. Ich habe sogar alle .cer-Dateien auf meinem System gelöscht, von denen sie möglicherweise abgerufen werden.

Irgendwelche Vorschläge?

Codezy
quelle
1
Prost. Hatte das gleiche Problem. :)
RedBlueThing
Habe das gleiche Problem. Dies liegt daran, dass der Schlüsselbund das Zertifikat nicht ordnungsgemäß entfernt und Sie eine Situation haben, in der 2 Zertifikate angezeigt werden (eines ist jedoch ungültig). Entfernen Sie einfach ungültig in der Schlüsselbund-App und dies wird gut funktionieren. Aber es ist eine temporäre Lösung. :(
Sergey Kopanev

Antworten:

103

Die Lösung bestand darin, in die Organizer-unter-Library-Provisioning-Profile zu wechseln, alle zu löschen und dann alle noch benötigten Profile neu zu installieren.

Codezy
quelle
Jep! Ich kann bestätigen, dass dies funktioniert. Obwohl ich den im Schlüsselbund immer wieder löschte, tauchte er immer wieder auf. Nachdem ich die alten Bereitstellungsprofile aus dem Organizer entfernt hatte, war alles wie gewohnt. Vielen Dank! :)
RoLYroLLs
1
Funktioniert auch bei mir! Vielen Dank! Ich denke, was XCode4 versucht, ist, Dev-Zertifikate in Ihren Schlüsselbund einzufügen, um Prov-Profile zu erhalten, denen diese fehlen, selbst wenn die Dev-Zertifikate abgelaufen sind.
iPhone 007
5
Denken Sie auch daran, Ihr Bereitstellungsprofil neu zu generieren, wenn Sie Ihr Entwicklungszertifikat erneuert haben. Ich habe es nicht getan und als ich ein altes Prov-Profil wieder hinzugefügt habe, wurde das zugehörige abgelaufene Entwicklerzertifikat wieder in den Schlüsselbund eingefügt, D'oh!
iPhone 007
Seien Sie vorsichtig, ich habe irgendwie meinen Login-Schlüsselbund gelöscht, um Profile zu löschen. Ich bin mir nicht sicher, wie das passiert ist, da ich mir ziemlich sicher bin, dass der Bereich der Schlüsselbundliste beim Klicken auf Löschen den Fokus hatte. Sichern Sie vor dem Löschen und seien Sie vorsichtig.
avance
Dies wird geholfen, aber wie andere gesagt haben, müssen Sie tatsächlich den Schlüsselbund öffnen und das abgelaufene Entwicklerzertifikat löschen, nicht nur das Bereitstellungsprofil.
Ron Srebro
33

Ich hatte das gleiche Problem und die obigen Lösungen haben mein Problem nicht gelöst (fast).

Ich hatte dieselbe doppelte Entwickler-ID / Zertifikat, über die sich alle beschweren, und ich habe versucht, alle meine Profile zu löschen, mein Zertifikat zu widerrufen / erneut auszustellen, sicherzustellen, dass keine im Systemschlüsselbund vorhanden sind, neu zu starten usw. usw.

Am Ende stellte sich heraus, dass sich im Systemschlüsselbund ein Zertifikat befand, das abgelaufen war und daher standardmäßig in der Liste ausgeblendet war.

Stellen Sie sicher, dass abgelaufene Zertifikate in KeyChain angezeigt werden

Um dies zu tun:

  1. Öffnen Sie den Schlüsselbundzugriff
  2. Klicken Sie auf das Menü Ansicht
  3. Klicken Sie auf Abgelaufene Zertifikate anzeigen
  4. Suchen Sie dann nach abgelaufenen Entwicklerzertifikaten und löschen Sie sie
Jagu
quelle
Genial, du bist ein Genie. Ich hatte alles getan, was überall aufgelistet war. Sie haben mir geholfen, das monatelange Problem zu lösen. Gott segne dich!
Bushra Shahid
1
Es stellte sich heraus, dass ich ein abgelaufenes Zertifikat unter dem Systemschlüsselbund hatte. Das hat mir geholfen, es zu finden! Vielen Dank!
christopher_f
11

Xcode 4 verfügt über eine neue Funktion "Automatische Gerätebereitstellung". Es befindet sich im Organizer unter Bibliotheks- / Bereitstellungsprofile. Wenn Sie diese Option aktiviert haben, werden Ihre Bereitstellungsprofile automatisch vom Apple Developer Provisioning Server heruntergeladen, und Sie erhalten die Fehlermeldung, dass Duplikate vorhanden sind. Der einfachste Weg, dies zu beheben, besteht darin, alle Bereitstellungsprofile zu löschen und für "Automatische Gerätebereitstellung" auf "Aktualisieren" zu klicken. Dadurch werden Ihre Bereitstellungsprofile vom Server geladen und Ihr Problem behoben.

Cyprian
quelle
Danke dafür. Ich habe meine Profile gelöscht und die automatische Gerätebereitstellung verwendet, um sie wieder abzurufen, und das Problem war behoben.
Sasho
Dies ist die aktuelle Lösung, die für mich funktioniert hat (nachdem ich die anderen Lösungen ausprobiert habe, scheinen sie veraltet zu sein)
Kasihasi
7

Wenn Sie sich mit dem Schlüsselbundzugriff herumschlagen möchten, um das abgelaufene Zertifikat zu entfernen, können Sie Folgendes versuchen:

  • Erstellen Sie einen neuen Schlüsselbund, nennen Sie ihn "abgelaufen" und verschieben Sie NUR das abgelaufene Zertifikat dorthin .
  • Löschen Sie den neu erstellten "abgelaufenen" Schlüsselbund, der NUR das abgelaufene Zertifikat enthält. Wenn Sie dazu aufgefordert werden, wählen Sie "Referenzen und Dateien löschen ".

Das abgelaufene Zertifikat verschwindet zusammen mit dem Schlüsselbund. hat perfekt für mich funktioniert.

felis
quelle
6
  1. Entfernen Sie alle Bereitstellungsprofile aus XCode Organizer.
  2. Entfernen Sie alte Entwicklerzertifikate aus dem Schlüsselbundzugriff.
  3. Generieren Sie Bereitstellungsprofile nur mit dem richtigen Entwicklerzertifikat.
  4. Laden Sie die neuen Bereitstellungsprofile herunter und installieren Sie sie.

- BEARBEITEN -

Führen Sie die Antwort von @ Codezy und den Kommentar von @ iphone007 zusammen.

Herr Ming
quelle
Ihre Antwort hat mein Problem nicht behoben. Eigentlich habe ich Entwicklerzertifikate und Bereitstellungsprofile mehrmals entfernt, aber alte Entwicklerzertifikate werden immer neu installiert. Aber @ iphone007 Kommentar ist hilfreich, ich füge sie einfach zusammen ....
Mr. Ming
2

Wenn Sie Bereitstellungsprofile in der Organizer-Bibliothek löschen, sollten Sie außerdem das iPhone-Entwicklerzertifikat in Keychain Access löschen. (Der Name des Zertifikats lautet wahrscheinlich "iPhone Developer: XXXXX ..." und wird durch ein rotes X-Zeichen als abgelaufen angezeigt.)

Kenial
quelle
Nur das Entfernen und erneute Installieren von Bereitstellungsprofilen im Organizer hat nicht geholfen, aber Ihr Vorschlag, das abgelaufene Profil aus dem Schlüsselbund zu entfernen, hat es für mich behoben, danke!
Gulchrider
2

Ich verbrachte einen halben Tag damit und fand schließlich die Lösung

  1. Öffnen Sie KeyChain Access.app
  2. Wählen Sie "System" im Menü "Schlüsselanhänger" im linken Teil des Schlüsselbund-Anwendungsbildschirms
  3. Wählen Sie "Zertifikate" im Menü "Kategorie"
  4. Entfernen Sie alle alten Zertifizierungen.

Schließen Sie dann Keychain.app und gehen Sie zu Xcode -> Organizer

  1. Entfernen Sie alle Bereitstellungsprofile im Menü Bibliothek
  2. Entfernen Sie alle Bereitstellungsprofile im Menü Geräte
  3. Klicken Sie im Menü Bibliothek -> Bereitstellungsprofil auf die Schaltfläche "Aktualisieren"
  4. Fügen Sie Ihrem Gerät die erforderlichen Profile hinzu

Erstelle deine App erneut :)

Stan
quelle
1

Für die Nachwelt ist hier die Strategie, um dieses Problem in unserem automatisierten Build-Skript zu umgehen:

  1. Verschieben Sie vor dem Erstellen die Profile ~ / Library / MobileDevices / Provisioning Verzeichnis beiseite
  2. Überprüfen Sie, ob das iPhone-Konfigurationsdienstprogramm verfügbar ist wird, und schließen Sie es (Zertifikate werden immer wieder angezeigt, wenn diese App geöffnet ist. In XCode 4.1 müssen Sie auch den Organizer schließen.)
  3. Führen Sie Sie bauen
  4. Verschieben Sie die Bereitstellungsprofile Verzeichnis zurück
  5. Profitieren?
Bryan
quelle
1

Ich habe alles versucht, was hier vorgeschlagen wurde, aber nichts hat für mich funktioniert, außer das erneute Installieren von XCode 4.3 hat den Fall auf magische Weise gelöst.

nh7a
quelle
1

In 4.6.1 wurde ein wirklich einfacher Weg gefunden, dies zu beheben. Sie können dies tun, ohne etwas neu zu starten oder Profile zu löschen!

Wenn Keychain Access und Ihr Xcode-Projekt geöffnet sind:

  1. Öffnen Sie in Xcode Organizer - "Geräte" und wählen Sie das "Team" mit dem doppelten Zertifikat aus.
  2. Wechseln Sie zu Keychain Access und löschen Sie die alten doppelten Zertifikate. Hinweis: Stellen Sie sicher, dass Sie "Abgelaufene Zertifikate anzeigen" aktivieren, um keine zu verpassen.
  3. Die Zertifikate sind aus dem "Team" -Profil im Xcode Organizer verschwunden.
  4. Projekt reinigen und bauen.

Ich hoffe es hilft!

John Caplinger
quelle
0

Die obige Methode funktioniert in meinem Fall nicht

Schließlich gehe ich zum Schlüsselbund

und suchen Sie den Schlüssel, indem Sie den Namen eingeben

Ich habe endlich das Zertifikat gefunden, das vorher gelöscht werden soll. dann habe ich es gelöscht und das Problem gelöst

Es ist wirklich frustrierend und ich weiß nicht, ob es der Fehler ist ... wirklich anstrengend.

chings228
quelle
0

Wenn Sie eine Antwort auf ein Duplikat dieser Frage zitieren, können einige der Fehler von Xcode in diesem Bereich nur durch einen Neustart von OS X behoben werden .

Am Ende war ich erfolgreich, indem ich alles löschte, was in einer der Antworten auf diese Frage erwähnt wurde, neu startete und dann die benötigten Teile manuell installierte (ich habe der automatischen Funktion zum Herunterladen von Profilen / Zertifikaten nicht vertraut / sie nicht ausprobiert).

Abhi Beckert
quelle
0

Für das, was es wert ist, @AndreasPrang, hat Ihre Antwort funktioniert, als all dies nicht der Fall war. Ich konnte sehen, dass sich das abgelaufene Zertifikat nirgendwo im Schlüsselbund befand, aber als ich einen Build durchführte, sagte Xcode, dass dies der Fall war. Das Löschen der Bereitstellungsprofile (alle), das Auswählen meines Namens im Abschnitt "Team" und das Klicken auf das Aktualisierungssymbol unten rechts im Organizer haben ebenfalls nicht geholfen. Das Neustarten von Xcode hat nicht geholfen, das Herunterfahren von XCode und das Löschen von ~ / Library / Developer / Xcode jedoch. Als ich XCode neu startete, baute es alles neu auf und war glücklich.

fporcaro
quelle
0

Der andere Grund, warum xcode Ihr Zertifikat weiterhin installiert, ist, dass Sie nicht den Schlüssel, sondern nur das Zertifikat gelöscht haben. Sie müssen den privaten Schlüssel (und den entsprechenden öffentlichen Schlüssel) sowie das Zertifikat im Schlüsselbund löschen, da sonst xcode das Zertifikat neu installiert.

Überprüfen Sie hier, um Entwicklungs- und Vertriebszertifikate aus Ihrem Schlüsselbund zu entfernen

Qiulang
quelle
0

Ich habe gerade Xcode 4.6.1 installiert und dieses Problem erneut festgestellt. Das letzte Mal war lange her. Ich habe die alten Bereitstellungsprofile und die Zertifikate gelöscht, konnte sie aber immer noch nicht erstellen.

Diesmal stellte sich heraus, dass ich im Teamkonto des Entwicklerportals 2 Zertifikate für mich aufgelistet hatte. Der erste war abgelaufen, der zweite nicht. Xcode griff immer wieder nach dem ersten, den es beim Aktualisieren gefunden hatte (oder vielleicht beides).

Ich habe beide Zertifikate aus dem Schlüsselbund gelöscht, dann das gute manuell vom Apple-Portal heruntergeladen und es manuell zum Schlüsselbund hinzugefügt. Jetzt kann ich wieder bauen.

(Und ich habe eine Anfrage an den Teamadministrator gesendet, um das alte Zertifikat zu entfernen.)

Walt Sellers
quelle
-1
  1. Entfernen Sie ~ / Library / Developer / Xcode
  2. Projekt reinigen

bauen...

Andreas Prang
quelle