Xcode 8 zeigt den Fehler, dass das Bereitstellungsprofil kein Signaturzertifikat enthält.
Dieses Problem tritt bei Xcode-8 nur bei Xcode 7 auf, wobei dasselbe Bereitstellungsprofil das zugehörige identifizierte Zertifikat anzeigt.
Um dies zu beheben,
Ich aktiviere einfach die "Automatische Verwaltung von Signaturen" auf der Registerkarte "Projekteinstellungen". Bevor ich das aktivieren konnte, hatte ich Angst, dass es einige Nebenwirkungen haben könnte, aber sobald ich es aktiviert habe, funktioniert es für mich.
Überprüfen Sie Ihren Schlüsselbund auf Identitäten, denen ein privater Schlüssel fehlt. Ich hatte mehrere Verteilungszertifikate für dasselbe Team installiert, von denen eines den privaten Schlüssel fehlte. Xcode überprüfte nur die erste übereinstimmende Identität im Schlüsselbund und verwendete diese automatisch, im Gegensatz zu der, die den privaten Schlüssel enthielt.
Durch das Entfernen der übereinstimmenden Identität ohne privaten Schlüssel hat Xcode die korrekte Identität erneut erkannt.
Es gibt viele Möglichkeiten, dies zu beheben, z. B. das automatische Signieren aktivieren usw. Wenn Sie jedoch den Grund für diesen Fehler verstehen möchten, müssen Sie die Fehlermeldung betrachten.
Das Provisioning-Profil, das Sie auf der Registerkarte "Allgemein" ausgewählt haben, enthält nicht das Signaturzertifikat, das Sie unter "Build-Einstellungen" -> "Codesignaturidentität" ausgewählt haben.
Dies geschieht normalerweise, wenn ein Verteilungszertifikat für die Debug-Identität unter "Build-Einstellungen" -> "Codesignatur-Identität" ausgewählt wurde.
Wenn dies unter "Signieren (Debuggen)" geschieht, kann es auch sein, dass "Signing Identity" -> "iOS Development" nicht im Bereitstellungsprofil enthalten ist.
Für diejenigen, die aus irgendeinem Grund nicht auotamatic verwenden sollten
Öffnen Sie keyChain Access, um zu sehen, ob es zwei gleiche Zertifizierungen gibt.
Dieses Problem trat auf, nachdem ich kürzlich Xcode auf Version 9.3 aktualisiert hatte. Das Problem bestand darin, dass das Zertifikatsignaturzertifikat (unter Debugging) auf ein Distributionszertifikat statt auf ein Entwicklungszertifikat gesetzt wurde. Dadurch konnte ich die App auf meinen Geräten nicht installieren.
Folgendes habe ich getan, um dieses Problem zu lösen.
Projekt -> Ziele -> Wählen Sie Ihre App -> Build-Einstellungen -> Code Signing Identity -> Debug -> Tippen Sie doppelt auf "iPhone Distribution" und ändern Sie sie in "iPhone Developer".
Ich habe das Kontrollkästchen deaktiviert und dann die Option "Signaturen automatisch verwalten" aktiviert. Das hat es für mich behoben.
Wofür sich das automatische Signieren lohnt, ist jedes Mal fehlgeschlagen, bis ich lokale Profile manuell gelöscht habe in: ~/Library/MobileDevice/Provisioning Profile
Danach funktionierte das automatische Signieren einwandfrei und es wurden die richtigen Profile von den Servern von Apple bereitgestellt.
Dies betraf nur einige Builds, insbesondere diejenigen, für die ich manuell Profile für die Watch-App erstellt hatte.
Für diejenigen, die in Xcode8 noch mit diesem Problem zu kämpfen haben. Für mich war ein Duplikat eines Zertifikatsproblems, so habe ich es gelöst:
Ich las die Antwort von Nick und begann meine Untersuchung. Ich habe alle Schlüssel und Zertifikate in meinem speziellen Fall (in ~/Library/Keychains/System.keychain) geprüft.
Als ich die Datei öffnete, stellte ich fest, dass ich zwei iPhone-Distributionszertifikate besaß (das war das Zertifikat, das Xcode mich anforderte), eines mit dem privaten iOS-Distribution-Schlüssel, den ich von Anfang an verwende, und ein weiteres iPhone-Distributionszertifikat, das es private Key hatte einen Namen (iOS-Distribution: NAME), der mir nicht bekannt war. Ich habe dieses letzte Zertifikat gelöscht, Xcode erneut gestartet und das Problem war weg. xCode konnte diesen Konflikt nicht lösen und gab deshalb ständig Fehler beim Signaturzertifikat aus.
Überprüfen Sie Ihre Schlüsselbunde. Vielleicht haben Sie ein doppeltes Zertifikat.
Sie können auch Probleme beim Signieren von Codes mit dem großartigen Fastlane Toolkit lösen. Autoren geben sich viel Mühe, um das Erstellen und Signieren von iOS-Apps (und mehr) effektiv zu automatisieren.
Daher gibt es in der erwähnten Suite ein Werkzeug sigh
, das alle Probleme mit der Signatur auf magische Weise löst, daher der Name :) Eine gute Sache ist, dass dieses Tool ein Wissen über häufige Probleme mit der Signatur enthält und die meisten von ihnen erkennen und lösen kann.
Fastlane wird als Ruby-Edelstein installiert:
gem install fastlane
Und dann einfach aufgerufen:
fastlane sigh --development
Beantworte zwei Fragen und voila:
[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...
Gehen Sie schließlich zu Build Settings -> Signing und wechseln Sie zu einem neu erstellten Bereitstellungsprofil, dessen Namen Sie gerade in der Befehlsausgabe gesehen haben.
Dieses Beispiel bezieht sich auf Probleme beim Entwicklungscode (auf dem Gerät ausgeführt). Überprüfen Sie Seufzendokumentation für alle anderen Optionen.
Wenn Sie manuell signieren (was ich auf jeden Fall empfehlen würde), kann dieser Fehler auftreten, da Xcode der Meinung ist, dass ein Release-Build mit einem Entwicklerzertifikat signiert werden sollte, das offensichtlich nicht in einem Release-Bereitstellungsprofil enthalten ist.
Es gibt eine Build-Einstellung, die definiert, welches Zertifikat für welche Build-Konfiguration verwendet werden soll. Um es zu ändern, gehen Sie zu Einstellungen erstellen und suchen Sie nach Code Signing Identity . Wenn diese Option erweitert ist, sollten für jede Build-Konfiguration (normalerweise Debug und Release) separate Zeilen mit der ausgewählten Identität (normalerweise iOS Developer oder iOS Distribution) in der zweiten Spalte vorhanden sein. Stellen Sie sicher, dass für jede Build-Konfiguration die richtige Identität festgelegt ist.
In einigen Fällen können die Build-Konfigurationen auch erweitert werden. Stellen Sie sicher, dass auch die Unterelemente auf die richtigen Identitäten eingestellt sind.
In meinem Fall hatte ich im Schlüsselbund zwei Zertifikate mit demselben Namen. Ich entfernte eines der Zertifikate, das doppelt vorhanden ist, und löste das Problem.
"Automatische Signatur aktivieren" und dann ein Team aus dem Dropdown-Menü auswählen, half mir bei diesem Problem.
Hatte den gleichen Fehler. Profile scheinen erneuert, neue Zertifikate hinzugefügt, ich habe sie sogar beim Download überprüft. Auch frühere Entwicklerzertifikate wurden widerrufen, vom Bereitstellungsprofil ausgeschlossen. Aber Xcode fragt mich immer noch nach früheren Zertifikaten mit Fehler:
No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found
also, was ich getan habe, um es zu reparieren:
Build Settings
-> Signing
-> Code Signing Identity
Ich hoffe es hilft jemandem.
Ich habe dies noch nicht gesehen, aber wenn Sie nach dem Wiederherstellen Ihrer Bereitstellungsprofile immer noch Probleme haben, die vorhandenen löschen, die sich in Ihrem Ordner "Provision Profiles" befinden, nach Dupes in Ihrem Schlüsselbund suchen usw. (alle anderen Antworten ITT), öffnen Sie Ihr Ziel> Build-Einstellungen> Codesignatur und stellen Sie sicher, dass dort alles konsistent aussieht. Ich hatte zum Beispiel die Codesignaturkennung für Debug in eine Verteilungsidentität geändert, die offensichtlich nicht funktioniert, da das Development Provisioning Profile das Verteilungszertifikat nicht hat und den Fehler überhaupt verursacht hat.
Wenn Sie versuchen, Ihre App zu iTunes Connect hochzuladen (Ihre Provisioning-Profile sind auf "Verteilung" eingestellt), gehen Sie zu Projekteinstellungen -> Build-Einstellungen -> Codesignierung. Stellen Sie sicher, dass Sie alle Debug- und Freigabeoptionen auf Ihr Verteilungsbereitstellungs-Bereitstellungsprofil festgelegt haben.
Für mich hat keine der oben genannten Lösungen funktioniert. Ich habe von zwei älteren Macs auf einen neuen Mac migriert und versucht, Release-/Debug-Profile für Xcode [~ # ~] ohne [~ # ~] Xcode verwaltet sie automatisch.
Die Lösung für mich war, dass ich beim Erstellen der beiden neuen Zertifikate [~ # ~] auch [~ # ~] eingeben musste meine Bereitstellungsprofile und fügen (sowohl unter der Distribution als auch unter dev) die neuen Zertifikate zu den so erkannten Bereitstellungsprofilen hinzu. Nachdem Sie dies getan und heruntergeladen haben, hat xcode alle Fehler beseitigt und es kann losgehen.
Hoffe das hilft jemandem!
Ich habe das gleiche Problem ... Ich habe den Mac gewechselt. Wenn ich das Xcode-Zertifikat heruntergeladen habe, wird eine Fehlermeldung angezeigt: "Der Fehler ist, dass das Sicherheitsprofil die Zertifikatsignatur nicht enthält."
1) Gehen Sie zu https://developer.Apple.com/account/ios/profile/limited/edit .__ Wählen Sie das Projekt aus => Bearbeiten => Zertifikate => Wählen Sie Alle => Erstellen => Herunterladen
2) In Xcode: Projektdatei => Signieren (Debuggen) => Bereitstellungsprofil => Profil importieren => Datei mit 1 auswählen
Ich habe eine dieser E-Mails von Apple erhalten:
Lieber John Doe,
Das folgende Zertifikat wurde entweder von einem Mitglied Ihres Entwicklungsteam oder abgelaufen ist:
Zertifikat: iOS-Entwicklung
Name des Teams: Honey Team, LLC
Dies hat keine Auswirkungen auf Apps, die Sie im App Store eingereicht haben, oder Ihre Fähigkeit, Ihre Apps zu aktualisieren. Wenn Sie die Bereitstellung verwenden Profile, die dieses Zertifikat enthalten, müssen vor .__ neu erstellt werden. Sie können wiederverwendet werden. Weitere Informationen finden Sie in der "App-Signaturübersicht" Abschnitt der Xcode-Hilfe.
Freundliche Grüße,
Apple Developer Program-Unterstützung
Ich habe ein neues Zertifikat erstellt, das widerrufen das vorherige Zertifikat (lokal und auf einem anderen Mac des Entwicklers) _ hat. Damit es funktioniert, muss ich die neuen Bereitstellungsprofile herunterladen.
Die Lösung ist zu:
Ich hatte keinen solchen Zugang. Dieser Zugriff stand nur dem Administrator unseres Teams zur Verfügung. Daher habe ich weder Screenshots noch sicher, ob diese Schritte zu 100% korrekt sind.
Hier sind die Schritte für mich gelöst (Für diejenigen, die das gleiche Problem in XCode 9.2 haben):
Lokale Profile wurden nur manuell in ~/Library/MobileDevice/Provisioning Profile gelöscht.
Alle Zertifikate und das Bereitstellungsprofil wurden vom Entwicklerkonto gelöscht und erstellt.
Entwicklerkonto aus Xcode entfernt und neu hinzugefügt.
Mein Problem gelöst! :-)
Ich hatte viele Tage damit zu kämpfen.
Schritt 1: Alle Zertifikate, Bereitstellungsprofil, AppID, Schlüssel usw. wurden aus dem Entwicklerkonto gelöscht.
Schritt 2: Die Push-Benachrichtigungszertifikate, das Bereitstellungsprofil, die App-ID usw. neu erstellt.
Schritt 3: Alle Zertifikate aus dem Schlüsselbund gelöscht.
Schritt 4: Das gesamte Bereitstellungsprofil von ~/Library/MobileDevice/Provisioning Profile gelöscht.
Schritt 5: Nur die erforderliche Bereitstellungsdatei hinzugefügt und getestet. Es funktioniert gut.
Laden Sie die Zertifikate/Profile direkt aus dem Member Center herunter und nicht aus Xcode.
Es hat für mich funktioniert, als ich sie manuell aus dem Mitgliedercenter heruntergeladen habe.
Es bedeutet, dass Sie eine der folgenden Aktionen ausführen müssen:
Eine Lösung für Nummer 2, wenn Sie die Zertifikat- und .p12-Datei nicht vom Ersteller abrufen können, wäre die Option "Signieren automatisch verwalten".
Xcode 11
Das ist der Fehler, den ich bekommen habe
Das Bereitstellungsprofil "XXX" enthält kein Signaturzertifikat "Apple Development: XXX (XXX)". `` `
Jetzt hat Xcode 11 automatisch ein Zertifikat "Apple Development: XXX" erstellt, das für alle Plattformen gültig ist
Du musst nur
Dieses Problem ist darauf zurückzuführen, dass der private Schlüssel im Zertifikat in Ihrem Profil nicht mit dem in Ihrem Schlüsselbund übereinstimmt. Ich löse das durch
gleiche Antwort mit Code-Signaturproblem in Xcode Version 8 .
Dies geschieht, weil das Bereitstellungsprofil die Datei nicht finden kann für das Zertifikat, mit dem es verknüpft ist.
Reparieren:
Der Fehler sollte jetzt verschwunden sein.
Ich hatte das gleiche Problem und der Grund war ein Pfennig. In den Build-Einstellungen wurde ein falsches Profil und Zertifikat ausgewählt. Ich hatte das nur vor wenigen Tagen gemacht. Sie müssen also nicht "automatisch" in Xcode aktivieren. Überprüfen Sie die Profile in Ihren Build-Einstellungen, bevor Sie dies tun.
Wenn Sie auf "Aktivieren der automatischen Signatur" klicken und dann abbrechen, hat es für mich funktioniert, obwohl die eigentliche Änderung folgende war:
ALWAYS_EMBED_Swift_STANDARD_LIBRARIES = YES;
oder in Xcode heißt es Always Embed Swift Standard Libraries
Ich hatte verbleibende private Schlüssel von Zertifikaten, die ich widerrufen hatte, Zertifikate waren weg, aber nicht die privaten Schlüssel. Das Löschen löste das Problem.
Um sie zu finden:
Der im Bild hervorgehobene Schlüssel ist ein Beispiel für einen privaten Schlüssel ohne Zertifikat.