Codesign-Fehler: Das Bereitstellungsprofil kann nach dem Löschen des abgelaufenen Profils nicht gefunden werden

500

Es wurde versucht, eine App neu zu erstellen, die erst gestern funktioniert hat. Ich habe die Nachricht erhalten, dass ein Profil abgelaufen ist, und habe es vom iPod und von iTunes entfernt. Wenn ich ein neues Profil ausgewählt habe (eines mit einem * in der Kennung), wird jetzt eine Fehlermeldung angezeigt:

Code Sign Error: Das Bereitstellungsprofil (lange Zeichenfolge) wurde nicht gefunden.

Was vermisse ich? Ich habe verwandte Fragen durchgesehen und dieses Szenario noch nicht gesehen.

Quantumpotato
quelle

Antworten:

856

Manchmal wird Ihre xcode-Projektdatei durcheinander gebracht, insbesondere wenn Sie ein altes Projekt haben und es zuerst mit einer älteren Version von xcode / iphone sdk erstellt haben. Sie müssen lediglich die Projektdatei in einem Texteditor öffnen, nach der 'langen Zeichenfolge' aus Ihrem Fehler suchen und diese Zeile manuell löschen. In der Tat sollten Sie einfach alle Zeilen löschen, die auf Bereitstellungsprofile verweisen. Öffnen Sie dann das Projekt in xcode erneut, gehen Sie zu den Einstellungen und wählen Sie Ihr neues Profil erneut aus. Dadurch werden solche Probleme meistens behoben. Die Zeilen, die auf die Bereitstellungsprofile verweisen, sehen folgendermaßen aus:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
Brad Der App-Typ
quelle
210
Die .xcodeproj-Datei ist eigentlich ein Verzeichnis, wie ein Anwendungspaket. Wenn Sie im Finder mit der rechten Maustaste darauf klicken, können Sie Paketinhalt anzeigen auswählen, und dann werden mehrere Dateien darin angezeigt (oder im Terminal nur CD darin). Die eigentliche Projektdatei ist diejenige mit der Erweiterung .pbxproj. Sobald Sie es mit einem Texteditor öffnen, sollten die gesuchten Zeilen mit 'PROVISIONING_PROFILE = oder' '"PROVISIONING_PROFILE [sdk = iphoneos *]" =' beginnen. Löschen Sie alle diese und dann sollten Sie gut sein.
Brad The App Guy
2
Außerdem musste ich alle meine Profile löschen, sie erneut vom Bereitstellungsportal herunterladen und erneut in XCode importieren. Wählen Sie dann unter Build-Einstellungen / Codesignatur das richtige Profil für alle Build-Konfigurationen aus.
Jay Imerman
11
Immer noch ein wertvoller Rat mit XCode4 im Jahr 2012. Danke!
Alexey Rusakov
6
... aaaaund noch wertvolle Ratschläge mit Xcode6 im Jahr 2014! Vielen vielen Dank!
Tom van Zummeren
4
Das einzige, was bei mir funktioniert hat: Einstellungen -> Konten -> Details anzeigen -> Aktualisieren. Dadurch wurden alle Bereitstellungsprofile vom Entwicklerportal neu geladen. Hoffe das hilft jemandem
blackhawk4152
129

Hier ist eine einfachere Lösung, die für mich funktioniert hat und die keine manuelle Bearbeitung der Projektdatei erfordert:

Erweitern Sie in XCode im Bereich "Gruppen und Dateien" die Option "Ziele" und doppelklicken Sie auf das Ziel Ihrer App. Dadurch wird der Infobereich für das Ziel aufgerufen. Überprüfen Sie im Abschnitt "Erstellen" den Abschnitt "Codesignatur" auf alte Profile und ersetzen Sie sie durch das richtige.

Beachten Sie, dass dies anders ist, als auf Ihr Projektsymbol zu doppelklicken und das Profil von dort aus zu ändern. Ziemlich beeindruckend :)

Ori

Ori
quelle
1
Vielen Dank! Ich werde es versuchen, wenn es das nächste Mal passiert :)
Quantumpotato
6
und stellen Sie sicher, dass Sie zuerst die richtige Build-Konfiguration auswählen :)
Johnus
1
Das funktioniert nicht immer. Manchmal muss man es immer noch manuell ändern, wie es in der ersten Antwort gezeigt wird.
SpaceTrucker
Nur ein weiterer Hinweis zum Echo von SpaceTrucker: Diese Methode funktioniert nicht immer. Die akzeptierte Antwort garantiert, dass Xcode nicht mehr nach diesem Phantomprofil sucht.
Simone Manganelli
Außerdem musste ich alle meine Profile löschen, sie erneut vom Bereitstellungsportal herunterladen und erneut in XCode importieren. Wählen Sie dann unter Build-Einstellungen / Codesignatur das richtige Profil für alle Build-Konfigurationen aus.
Jay Imerman
76
  1. Projekt- und Zieleigenschaften -> "Vorzeichen nicht codieren" -> OK -> cmd + S (oder cmd + B);
  2. Projekt- und Zieleigenschaften -> "Ihr Bereitstellungsprofil" -> OK

  3. Alles funktioniert wieder!

user732414
quelle
4
Dies ist die einzige Lösung, die für mich funktioniert hat (mit XCode4). Das Erstellen der App mit "Don't Code Sign" war für mich ein obligatorischer Schritt.
Chazbot
Dies scheint eine bessere Lösung zu sein als die mit mehr als 200 Upvotes, da Xcode in Zukunft möglicherweise die Art und Weise ändert, in der es seine Projektdatei schreibt.
Danyal Aytekin
1
Dies ist die richtige Lösung, die für mich in Xcode 4.2
Selvin
10

Ich stimme Brads Antwort zu, dass Sie dieses Problem beheben können, indem Sie Ihr Ziel / Projekt von Hand bearbeiten und folgende Zeilen löschen:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

In Xcode 4.2 und höher gibt es jedoch eine viel einfachere Möglichkeit, auf diesen Text zuzugreifen und ihn auszuwählen und zu löschen. Wählen Sie im Projektnavigator links Ihr Projekt aus (die oberste Zeile des Projektnavigators). Wählen Sie nun einfach Ansicht> Versionseditor> Versionseditor anzeigen. Dadurch wird Ihr Projekt als Text angezeigt, und Sie können nach PROVISIONING suchen und die problematische Zeile direkt dort im Editorbereich von Xcode löschen.

matt
quelle
Anschließend müssen Sie das Projekt nicht schließen und öffnen. Besserer Ansatz :)
virale
6

Ich habe gerade eine Variation dieses Problems gesehen: Ich habe die Datei project.pbxproj gemäß den obigen Anmerkungen von Brad Smith aufgerufen, außer in diesem Fall schienen alle Zeilen PROVISIONING_PROFILE korrekt zu sein, ohne dass die "schlechte" Profilzeichenfolge auftrat, die XCode nicht konnte nicht finden.

Das Update war jedoch dasselbe: ALLE PROVISIONING_PROFILE-Zeilen in project.pbxproj löschen, obwohl sie theoretisch "gut" aussahen, und dann das Projekt in XCode erneut öffnen.

theevank
quelle
4

Verwenden Sie diese Befehle, um Brads Lösung vollständig in Terminal zu erreichen

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - Löschen Sie die gesamte Zeile
  5. Drücken Sie n, bis keine weiteren gefunden werden
  6. Strg + x zum Speichern und Schließen
MechEngineer
quelle
3

In meinem Fall wurde das Problem gelöst, indem Fenster -> Organizer geöffnet, mein Gerät ausgewählt und das alte Bereitstellungsprofil rechts im Bereich "Bereitstellung" entfernt wurde. Das alte war bereits mit einem roten "x" gekennzeichnet, aber das iPhone verwendete es noch.

Neben diesem Profil wurde auch das neue (mit demselben Namen) angezeigt, und nachdem ich die Anwendung einfach neu gestartet hatte, lief sie reibungslos.

Stack-o-Frankie
quelle
+1, manchmal konnte ich wegen eines abgelaufenen Profils nicht installieren - nicht einmal mit derselben Kennung! - war auf meinem Gerät.
Quantumpotato
Dieser hat für mich funktioniert, aber ich musste auch XCode neu starten, damit es funktioniert.
Matt
3

Ich habe nur ungefähr eine Stunde damit verbracht und mit Hilfe von Brads Rat und ein paar zusätzlichen Änderungen hat alles funktioniert.

Ich habe dies mit folgendem getan: 10.7.3, Xcode 4.3.2, iOS 5.1 übrigens.

1) Klicken Sie mit der rechten Maustaste auf Ihre myapp.xcodeprojund wählen Sie den Paketinhalt aus

2) Öffnen Sie project.pbxprojmit einem Texteditor (empfehlen Sie keine Textbearbeitung, da dies die Formatierung beeinträchtigen kann).

3) Scrollen Sie ganz nach unten, bis Sie finden /* Begin XCBuildConfiguration section */

4) Beachten Sie, dass Sie über Debug- und Release-Abschnitte verfügen

5) Schauen Sie sich im Release-Bereich an CODE_SIGN_IDENTITYund "CODE_SIGN_IDENTITY[sdk=iphoneos*]"es sollte ungefähr so ​​aussehen:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) Schauen Sie sich das an PROVISIONING_PROFILEund "PROVISIONING_PROFILE[sdk=iphoneos*]"sie sollten so aussehen:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

Dies sollte mit Ihrem Bereitstellungsprofil in Xcode übereinstimmen. Um zu sehen, ob sie übereinstimmen, öffnen Sie Xcode> Fenster> Organizer> Geräte> Bereitstellungsprofile> Klicken Sie mit der rechten Maustaste auf das Profil> Im Finder anzeigen> Der Dateiname der .mobileprovision ist Ihre Profil-ID.

7) Scrollen Sie nach unten project.pbxprojund suchen Sie eine zweite Instanz des Release-Abschnitts. Die zweite Instanz des Release-Abschnitts sollte mit einem Kommentar enden/* End XCBuildConfiguration section */

8) Stellen Sie sicher, dass der zweite Abschnitt mit dem ersten Abschnitt übereinstimmt CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]und PROVISIONING_PROFILEalle ausgefüllt sind.

Bobbypage
quelle
2

Ein Vorschlag, den ich machen werde, da noch niemand ihn gesagt hat: BITTE BITTE BITTE erstellen Sie eine Sicherungskopie Ihrer gesamten .xcodeproj-Datei, BEVOR Sie mit der Änderung des Inhalts beginnen. Das Versauen der Projektdatei und das Fehlen einer Sicherung führen zu einer sehr, sehr unangenehmen Erfahrung.

Sich aus einer Bearbeitung zurückziehen zu können, kann ein Glücksfall sein.

Richard Brown
quelle
Ja, deshalb haben die SCM-Götter die Quellcodeverwaltung durchgeführt.
Br.Bill
1

Ich bin gerade auf dieses Problem in meinem XCode4 gestoßen. Um dies zu beheben, müssen Sie alle korrekten Bestimmungen in die Debug- und Release-Konfiguration einfügen.

Ich habe versucht, meine App (durch Archivierung) einzureichen. Daher ändere ich einfach die Debug-Bestimmungen in "Don't Code Sign" und die Release-Bestimmung in die Appstore-Bestimmung meiner App.

Dies behebt das Problem und ermöglicht es mir, normal zu archivieren. Ich hoffe, das hilft.

GeneCode
quelle
1

Wählen Sie die Zeilen in der Codesignatur aus, die unter Beliebiges iOS SDK leer sind, und wählen Sie das richtige Zertifikat aus.

versunkene Stadt
quelle
1

Die Lösung von Brad Smith hat für mich funktioniert, aber ich musste auch das Feld CODE_SIGN_IDENTITY entfernen, damit es funktioniert.

jean_jean
quelle
Dies geschieht manuell, indem die xcode-Projektdatei in einem Texteditor geändert wird. Oft musste ich dies tun, um wieder in Gang zu kommen, wenn ich in einen fehlerhaften Zustand gerate. Es ist oft sehr hilfreich, beide Dinge zu kennen, die entfernt werden können. Guter Punkt.
Warren P
0

Leider hat dieser Ansatz für mich nicht geklappt. Aber hier ist ein Fix, der für mich funktioniert hat (damit dies funktioniert, benötigen Sie eine funktionierende Projektdatei für Subversion oder so):

Ich habe auf eine funktionierende Version meiner Projektdatei zurückgesetzt. Da mit Xcode kein Zurücksetzen möglich ist ( Wo ist die Option "Zurücksetzen" in der Quellcodeverwaltung von Xcode 4? ) - Ich habe Tortoise, meinen Windows-Computer und dieses Lernprogramm ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en) verwendet /tsvn-howto-rollback.html ), um ein Rollback auf eine ältere Projektdatei durchzuführen .

Da das Tutorial für mich nicht funktioniert hat, habe ich Tortoise nur verwendet, um die funktionierende Revision meiner Projektdatei auf einem USB-Stick zu speichern und auf meinen Mac zu portieren. Danach habe ich die neue kaputte Projektdatei durch die alte funktionierende ersetzt, gereinigt und es hat wie ein Zauber funktioniert!

Chris Conway
quelle
0

Ich hatte Probleme, weil ich mein AdHoc-Bereitstellungsprofil mit einigen neuen Geräten zur Verwendung in TestFlight aktualisiert habe. Angenommen, dies geschieht, weil xcode einen alten Verweis auf Ihr Bereitstellungsprofil in den Builds-Einstellungen für die Codesignierung für das Projekt oder die Ziele enthält. Die Art und Weise, wie ich meine reparierte, war:

  1. Wechseln Sie sowohl zu den Einstellungen für die Zielerstellung als auch zu den Einstellungen für die Projekterstellung. Ändern Sie unter Codesignatur alle Bereitstellungsprofile in etwas anderes.
  2. Gehen Sie im Organizer zu Geräte / Bereitstellungsprofile, löschen Sie die fehlerhaften Profile und klicken Sie unten rechts auf die Schaltfläche Aktualisieren.
  3. Kehren Sie zu den Ziel- und Projekterstellungseinstellungen zurück und stellen Sie Ihre Bereitstellungsprofile auf die entsprechenden (hoffentlich) neu aktualisierten Bereitstellungsprofile ein.
George McKibbin
quelle
0

Zumindest in Xcode 5 hat dies das Problem für mich gelöst:

Wählen Sie unter Bereitstellungsprofil das fehlerhafte Bereitstellungsprofil aus und wählen Sie dann im Pulldown-Menü ein gültiges Bereitstellungsprofil aus.

Geben Sie hier die Bildbeschreibung ein

RawMean
quelle
0

Sie können die alte Referenz der Bereitstellungsdatei entfernen. Dann nach dem Importieren eines neuen Bereitstellungsprofils und Auswahl von Xcode Builder.

annu
quelle