Verteilungszertifikat / privater Schlüssel nicht installiert

102

Mit Xcode 9.1 möchte ich nach dem Erstellen einer iOS-App diese archivieren und zum Betatest in den AppStore hochladen. Ich erhalte jedoch das folgende Problem, nachdem ich auf die Schaltfläche geklickt Upload to the App Store...und ausgewählt habe Automatically manage signing:

"Mein Name" hat ein iOS-Verteilungszertifikat, aber sein privater Schlüssel ist nicht installiert.

Ich weiß nicht, warum dieser "private Schlüssel nicht installiert ist", aber das Verteilungszertifikat wurde möglicherweise auf einem anderen Computer oder etwas anderem erstellt. Auf jeden Fall:

Was ist der einfachste Weg, um den fehlenden privaten Schlüssel abzurufen und zu installieren? Damit die Dinge funktionieren.

Michel
quelle

Antworten:

81

Sie können nur ein Verteilungszertifikat haben. Es vereint einen öffentlichen Schlüssel, der Apple bekannt ist, mit einem privaten Schlüssel, der sich im Schlüsselbund eines Computers befindet. Wenn dieses Verteilungszertifikat auf einem anderen Computer erstellt wurde, befindet sich der private Schlüssel im Schlüsselbund dieses Computers. Und dieses Verteilungszertifikat funktioniert ohne es nicht.

Um dieses Verteilungszertifikat auf diesem Computer verwenden zu können, müssen Sie diesen Computer finden , den Schlüsselbundzugriff öffnen, den privaten Schlüssel suchen und exportieren, ihn per Post oder auf andere Weise an diesen Computer senden und in den Schlüsselbund dieses Computers importieren.

Wenn Sie in Xcode in den Voreinstellungsbereich "Konten" gehen und auf Ihr Team doppelklicken, wird ein Dialogfeld angezeigt, in dem Sie dabei helfen können. Wenn Ihr Verteilungszertifikat angezeigt wird und "Nicht im Schlüsselbund" angezeigt wird, können Sie bei gedrückter Ctrl-Taste auf dieses Zertifikat klicken, um ein Menüelement zu erhalten, mit dem Sie eine E-Mail an den Ersteller des Zertifikats senden und ihn bitten können, es an Sie zu senden. Diese Person kann denselben Import verwenden, um Zertifikat exportieren auszuwählen, und kann Ihnen ein exportiertes Zertifikat per E-Mail senden.

In beiden Fällen wird der private Schlüssel oder das exportierte Zertifikat mit einem Kennwort versehen. Sie müssen das Passwort kennen, um es verwenden zu können.

matt
quelle
1
Mein erster Versuch nach Ihrem Vorschlag hat nicht funktioniert. Höchstwahrscheinlich, weil ich es nicht richtig gemacht habe. Eine Frage, die ich habe, ist, wann ich zu Keychain Access gehe, wo das Zertifikat erstellt wurde. Wie finde ich den privaten Schlüssel? Es scheint, als ob Keychain Access an einigen Stellen zig Millionen Objekte mit demselben Namen anzeigt. Ich bin mir also nicht sicher, ob ich diesen Teil so gemacht habe, wie ich sollte.
Michel
32
Nun, eine E-Mail an mich selbst zu senden und die Frage zu stellen, die ich Ihnen jetzt stelle, ist wahrscheinlich nicht effektiv :)
Michel
1
Aber ich denke immer noch, dass Ihre Antwort mich auf den richtigen Weg gebracht hat, also muss ich mich ein bisschen mehr damit befassen.
Michel
Ich habe mich endlich in diesem Problem zurechtgefunden. Aber ich bin leider nicht mit dem ganzen Signiergeschäft fertig. Ich habe einen anderen Beitrag mit einer separaten Frage gemacht: stackoverflow.com/questions/47258499/…
Michel
Danke für dieses @matt! In meinem Fall habe ich ein iOS-Verteilungszertifikat mit der CSR erstellt, die ich auf meinem Gerät erstellt habe. Bei der Installation im Schlüsselbund ist jedoch kein privater Schlüssel an das Zertifikat gebunden. Ich kann kompilieren, weiß aber nicht, wo sich der private Schlüssel befindet, daher konnte ich meinen Teamkollegen die p12-Datei nicht geben. Obwohl dies ein anderer Fall ist, konnte ich es dank Ihres Ratschlags zum Aufrufen des Bereichs "Xcode-Konten" auf Seite 12 exportieren. :) Nun ist alles in Ordnung, aber ich frage mich nur, wo zum Teufel dieser versteckte private Schlüssel ist, der nicht zusammen mit dem Zertifikat im Schlüsselbund angezeigt wird.
KarenAnne
278

Aktuell (Juli 2020) (xcode 10 - 12)

  1. Gehen Sie zu Xcode - Einstellungen - Konten - Zertifikate verwalten
  2. Klicken Sie +dann unten links aufApple development
  3. Warten Sie ein wenig und klicken Sie dann Done

Das ist alles. Möglicherweise möchten Sie das alte Zertifikat auch auf developer.apple.com widerrufen .

Alte Antwort

Schritt 1: - xcode -> Produkt -> Archive -> Klicken Sie auf Zertifikat verwalten Geben Sie hier die Bildbeschreibung ein

Schritt 2: - Fügen Sie die iOS-Verteilung hinzu Geben Sie hier die Bildbeschreibung ein

Tanjima Kothiya
quelle
7
Dies funktioniert nicht, da nichts passiert, wenn ich auf das Pluszeichen klicke. Ich habe keine Option für "iOS Distribution".
Arnoldbird
2
Wenn ich über Xcode> Einstellungen> Konten auf Zertifikate verwalten zugreifen kann, ist das Pluszeichen aktiv, wie in Schritt 2 oben gezeigt.
Arnoldbird
11
Dies wäre die beste Antwort
Kishorekumaru
2
Wow :-D. Es wurde für mich behoben. Entweder sollte das nicht möglich sein oder Xcode sollte Sie nicht stören.
Joshua R.
3
Derzeit in Xcode 10.3 Xcode - Einstellungen - Konten - Zertifikate verwalten
Anton
26

Diese Antwort ist für das "One Man" -Team, um dieses Problem schnell zu lösen, ohne zu viele Informationen über "Team" durchzulesen.

Schritt 1) ​​Gehen Sie zum Webbrowser und öffnen Sie Ihr Entwicklerkonto. Gehen Sie zu Zertifikate, Kennungen und Profile. Wählen Sie Zertifikate / Produktion. Dort wird das Zertifikat angezeigt, bei dem der private Schlüssel fehlte. Klicken Sie auf Widerrufen. Befolgen Sie die Anweisungen, um dieses Zertifikat zu entfernen. Geben Sie hier die Bildbeschreibung ein Schritt 2) Das war's! Gehen Sie zurück zu Xcode, um Ihre App zu validieren. Sie werden nun aufgefordert, ein neues Zertifikat zu erstellen. Jetzt laden Sie Ihre Apps gerne hoch.

Paul
quelle
11

EDIT: Ich dachte, dass der andere Computer tot ist, also korrigiere ich meine Antwort:

Sie sollten das Zertifikat vom ersten Computer mit seinem privaten Schlüssel exportieren und in den neuen Computer importieren.

Ich bevorzuge die iCloud-Methode, sichern Sie auf iCloud und laden Sie sie auf den neuen Computer.

Wenn Sie dies aus irgendeinem Grund nicht tun können, können Sie das Zertifikat auf der Apple-Entwicklerseite widerrufen und dann Xcode einen neuen für Sie erstellen lassen. Außerdem wird ein neuer privater Schlüssel erstellt und in Ihrem Schlüsselbund gespeichert Stellen Sie sicher, dass Sie es auf Ihre bevorzugte Weise sichern

Yitzchak
quelle
2
Das ist ein schrecklicher Rat.
Matt
4
Meines Wissens passiert beim Widerruf des Zertifikats nichts Schlimmes. Wissen Sie noch etwas?
Yitzchak
Ja; Er kann den privaten Schlüssel von Computer 1 auf Computer 2 exportieren. Was Sie empfehlen, führt dazu, dass das Verteilungszertifikat auf dem anderen Computer nicht mehr funktioniert! Warum ist das eine gute Sache?
Matt
2
Ich dachte, der andere Computer ist tot
Yitzchak
7

Hinzufügen eines neuen Herstellungszertifikat hier , dann laden Sie die CER - Datei und doppelklicken Sie darauf , es zu Keychain hinzuzufügen.

Jetzt wird alles gut, vergessen Sie nicht, Xcode neu zu starten !!!

fujianjin6471
quelle
1
für mich trat der Fehler immer noch auf, musste auf das Plus klicken, damit es aktualisiert und funktioniert
Zack
6

Wenn Sie das gesamte Verteilungszertifikat für developer.apple.com widerrufen und Ihre App in Xcode validieren, können Sie ein neues Verteilungszertifikat erstellen, nachdem Sie den Schlüssel zur weiteren Verwendung exportieren können.

Diese Arbeit für mich.

Sohaib Siddique
quelle
4

Nur für alle anderen, die dies durchlaufen, sind die obigen Antworten korrekt, aber es kann immer noch etwas verwirrend sein, insbesondere wenn Sie mehrere Zertifikate haben. Dies waren die Schritte, die ich unternahm:

1) Notieren Sie sich zuerst das Datum im tatsächlichen Verteilungszertifikat, an dem der private Schlüssel fehlt. Gehen Sie dann zur Schlüsselbundanwendung auf dem anderen Computer und geben Sie IOS in die Suchleiste ein. Es werden alle Ihre IOS Developer- und Distribution-Schlüssel angezeigt, sodass Sie den richtigen finden müssen.

2) Klicken Sie auf den Rechtspfeil jedes IOS Distribution-Eintrags, um das Zertifikat anzuzeigen, und suchen Sie das Zertifikat mit dem richtigen Datum. Exportieren Sie dieses Zertifikat, indem Sie mit der rechten Maustaste klicken und den Export auswählen.

3) Importieren Sie es dann einfach in den Schlüsselbund des neuen Computers und zumindest mit XCode 9.3 erkennt es es sofort und korrigiert den Fehler, sodass Sie jetzt Ihre Leistung hochladen können.

Sam
quelle
Vielen Dank! Ich würde hinzufügen, dass in der Standardansicht der Pfeil nach links nicht angezeigt wird, mit dem Sie den Schlüssel erweitern können, um das Zertifikat anzuzeigen. Sie müssen im Bedienfeld „Kategorie“ die Option „Schlüssel“ auswählen. Nur dann können Sie das Zertifikat auswählen und exportieren. Wenn Sie stattdessen den privaten Schlüssel exportieren, wird beim Importieren auf den anderen Computer eine Fehlermeldung angezeigt.
Clafou
4

Wenn Sie das Zertifikat auf einem neuen Computer verwenden oder nicht. Am einfachsten wäre es, das vorherige Zertifikat für das Projekt zu widerrufen. Laden Sie dann erneut in den Store hoch. Xcode generiert einen neuen.

Chinedu Etoh
quelle
4

Die Antwort der Leute, dass der Schlüssel vom Computer generiert wird, ist korrekt. Wenn die Fehler weiterhin auftreten, starten Sie Xcode nach der Installation eines Zertifikats neu

MobileMon
quelle
2

In meinem Fall, dass Xcode nicht über den Schlüsselbund auf Zertifikate zugegriffen hat, habe ich die folgenden Schritte ausgeführt:

  1. Zertifikate aus dem Schlüsselbund löschen.
  2. Starten Sie den Mac neu.
  3. neue Zertifikate generieren.
  4. Installieren Sie neue Zertifikate.
  5. Build-Ordner bereinigen.
  6. Projekt bauen.
  7. Bereinigen Sie erneut den Build-Ordner.
  8. Archiv jetzt. Es funktioniert Das ist es.
M. Mubeen Asif
quelle