it-swarm.com.de

Xcode erkennt mein neues Bereitstellungsprofil nicht

Das Profil der Provisioning-Entwicklung für meine App ist vor ein paar Wochen abgelaufen. Ich ging also zum Provisioning-Portal, um ein neues zu erhalten. Nachdem ich es erhalten hatte, besuchte ich den Xcode Organizer, entfernte das abgelaufene Profil von meinen Geräten sowie von meinem Mac und importierte das neue Profil. Xcode installiert das Profil sofort auf meinen Geräten und meine App wird erneut auf den Geräten ausgeführt.

Das Problem ist, dass, während der Organisator das neue Profil sehen und installieren kann, das IDE zwischen dem alten und dem neuen Profil verwechselt wird. Jedes Mal, wenn ich versuche, die App zu erstellen, schlägt diese sofort fehl. Die Fehlerkonsole sagt mir, dass Xcode das alte Profil nicht finden kann, da das angegebene GUID zum alten gehört. Das ist seltsam; Ich dachte, Xcode hätte das neue Profil inzwischen erkannt.

Ich habe versucht, das neue Profil von meinen Geräten und meinem Mac zu entfernen und dann das Profil neu zu installieren. Funktioniert nicht, Xcode versucht immer noch, nach dem alten zu suchen. Ich habe auch versucht, ein anderes Profil auszuwählen, damit Xcode das alte vergisst und dann das neue auswählt. Ich habe sogar versucht, manuell das GUID des neuen in die Option Other einzugeben. Trotzdem besteht Xcode immer noch darauf, nach dem alten Profil zu suchen, das inzwischen von meinem Mac nicht mehr vorhanden ist.

Wie kann ich Xcode davon überzeugen, dass ich ein neues Bereitstellungsprofil für meine App erstellt habe, das sie verwenden kann?

21
BoltClock

tl; dr: Es stellte sich heraus, dass ich einfach die Projektdatei manuell bearbeiten musste, um Xcode das neue Profil mitzuteilen. Nun weiß ich nicht warum Ich musste die Projektdatei manuell aktualisieren. Vielleicht habe ich beim Importieren des neuen Profils in Xcode etwas falsch gemacht, sodass ich nicht wusste, dass mein neues Profil eingegangen war. Oder das Dateisystem verschluckte sich und Xcode konnte sich nicht selbst aktualisieren. Naja.

Nun zum spaß technischer Bereich:

WICHTIG: Wie bei allen anderen Aspekten, bei denen Dateien geändert werden, sollten Sie keine Änderungen vornehmen: Stellen Sie sicher, dass Sie Ihr .xcodeproj-Paket und/oder Ihr gesamtes Xcode-Projekt sichern, oder stellen Sie sicher, dass Ihr Xcode-Projekt in der richtigen Version bleibt Steuerung . Sie möchten nicht durcheinander bringen und Xcode dazu bringen, Ihr Projekt nicht mehr auf Ihrem Gerät zu erstellen, ohne dass irgendetwas darauf zurückgreifen muss.

Ich habe in den Inhalt des .xcodeproj-Pakets meiner App eingesehen (Xcode wird zurzeit nicht ausgeführt). Um diese anzuzeigen, öffnen Sie Ihren Projektordner im Finder, klicken Sie bei gedrückter Strg-Taste auf Ihre .xcodeproj-Datei und wählen Sie Show Package Contents :

 Breeze.xcodeproj /
 Daniel.mode1v3 
 Daniel.pbxuser 
 Project.pbxproj 

Dann project.pbxproj in einem Texteditor geöffnet (es ist Text, nicht binär), und nach Konfigurationsinformationen für den Build gesucht.

Es gibt einen Abschnitt mit der Bezeichnung /* Begin XCBuildConfiguration section */ (den Sie mit der Suchfunktion Ihres Editors finden können). Es ist eine Liste von Einträgen, von denen jeder eine Code-Signing-Konfiguration für ein bestimmtes Profil in einer bestimmten Build-Konfiguration darstellt.

Hier finden Sie Informationen zum Profil, mit dem ich meine Binärdatei für die Entwicklung signiere:

1D6058940D05DD3E006BFB54 /* Debug */ = {
    isa = XCBuildConfiguration;
    buildSettings = {
        ALWAYS_SEARCH_USER_PATHS = NO;
        "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Daniel Tan (XXXXXXXXXX)";
        COPY_PHASE_STRIP = NO;
        GCC_DYNAMIC_NO_PIC = NO;
        GCC_OPTIMIZATION_LEVEL = 0;
        GCC_PRECOMPILE_PREFIX_HEADER = YES;
        GCC_PREFIX_HEADER = Breeze_Prefix.pch;
        GCC_VERSION = com.Apple.compilers.llvmgcc42;
        INFOPLIST_FILE = "Breeze-Info.plist";
        IPHONEOS_DEPLOYMENT_TARGET = 4.0;
        PRODUCT_NAME = "Breeze";
        "PROVISIONING_PROFILE[sdk=iphoneos*]" = "36F99F3E-805F-47A7-95D4-FF8324711CBE";
        SDKROOT = iphoneos;
    };
    name = Debug;
};

Bemerkenswert ist diese Zeile:

"PROVISIONING_PROFILE[sdk=iphoneos*]" = "36F99F3E-805F-47A7-95D4-FF8324711CBE";

Das ist der GUID, der vom Build-Fehler gemeldet wird. die Kennung meines alten, abgelaufenen Bereitstellungsprofils.

Alles, was ich tun musste, war es durch das GUID des neuen Profils zu ersetzen:

"PROVISIONING_PROFILE[sdk=iphoneos*]" = "E6E6369E-FD58-4886-9C3A-72C9DAE36501";

Ich öffne mein Projekt erneut in Xcode. Jetzt wird meine App mithilfe des neuen Bereitstellungsprofils erfolgreich erstellt und auf meinen Geräten installiert.

17
BoltClock

So habe ich es in Xcode 4 gemacht:

  1. Wählen Sie unter Projekt> Build-Einstellungen> Codesignatur die Option Kein Code-Zeichen
  2. Reinigen Sie den Build
  3. Bauen Sie es erneut auf - sollte eine Fehlermeldung wie "dieses Zeug muss signiert werden" angezeigt werden
  4. Wählen Sie das neue Profil aus der Codesignatur
  5. Wiederaufbau
15
hackdev

Ich konnte diesen Fehler beheben, indem ich ihn in Code Signing Identity in "Don't Code Sign" änderte. Build, und Sie erhalten den Fehler "Codesignatur ist für Produkttyp ... blah ... erforderlich". Gehen Sie dann zurück und wählen Sie das richtige Profil aus. Bauen und alles gut. Dies ist mir passiert, weil mein Zertifikat abgelaufen ist und ich es erneuert habe. Außerdem musste ich das alte Zertifikat und den Organisator aus meinem Schlüsselbund entfernen.

8
Tige Phillips
  1. Schließen Sie den xcode
  2. edith mit texmate, youtproject.xcodeproj
  3. Diese Zeile finden "PROVISIONING_PROFILE[sdk=iphoneos*]" = "E8DEEBA3-FE0A-419F-9F7E-258572D55807";
  4. Löschen
  5. Starten Sie xcode build & archive für Unternehmen neu
1
Axel Galan

Meine Lösung für dieses Problem war:

  1. Laden Sie Ihr neues Bereitstellungsprofil herunter
  2. Doppelklicken Sie auf das Bereitstellungsprofil, um es zu installieren
  3. Gehen Sie auf dem Mac in das folgende Verzeichnis: /Users/<your.username>/Library/MobileDevice/Provisioning Profiles
  4. Suchen Sie nach dem alten Bereitstellungsprofil, das Sie nicht mehr benötigen (wird aber weiterhin in Xcode angezeigt). Dies kann für diesen Schritt hilfreich sein: https://github.com/chockenberry/Provisioning
  5. Lösche es
  6. Beenden Sie Xcode vollständig
  7. Öffnen Sie Xcode erneut
  8. Sie sollten jetzt in der Lage sein, Ihr neues Bereitstellungsprofil auszuwählen
1
Hodson

Um zu der -Lösung oben hinzuzufügen, können Sie das reizende xcodeproj gem verwenden, um mit solchen Dingen zu helfen. Beachten Sie, es konvertiert Ihre OpenStep key = value; -Style-Plist in XML. Hinweis: Ich habe festgestellt, dass Xcode es zurücksetzt, wenn Sie später Änderungen in Xcode vornehmen. Entweder wird der Stil der Datei in Xcode oder über die Befehlszeile erstellt. Für ein Beispiel, wie ich es benutze

project = Xcodeproj::Project.new('Foo.xcodeproj')
csi_key = 'CODE_SIGNING_IDEDNTITY'
project.targets.each do |target|
  target.build_configurations.each do |conf|
    conf.build_settings[csi_key] = 'iPhone Developer: Cool Dood (XYZ123)' unless conf.build_settings[csi_key] == nil
  end
end

Hier ein Überblick, wie ich es benutze: https://Gist.github.com/82times/5594887

1

In meinem Fall bin ich mit XCode 5 nach Ablauf meines Entwicklerzertifikats auf dieses Problem gestoßen. Ich habe das neue Zertifikat und das neue Bereitstellungsprofil manuell heruntergeladen. Ich habe das Zertifikat zum Schlüsselbund und das Bereitstellungsprofil zu den Geräten im Organizer hinzugefügt. 

XCode hat sich jedoch darüber beschwert, dass ich die App nicht signieren kann. Ich stellte fest, dass in den Voreinstellungen von XCode 5 immer noch das alte Provisioning-Profil angezeigt wurde und es trotz zahlreicher Reloads, die ich dort durchgeführt habe, nicht auf das neue aktualisiert wurde. 

Schließlich löschte ich mit dem iPhone-Konfigurationsdienstprogramm das alte Bereitstellungsprofil und fügte das neu heruntergeladene Bereitstellungsprofil hinzu. Nach Code-Signierung funktionierte wie erwartet. 

0
Rajan Ponnappan

Die meisten Antworten funktionierten nicht für mich, da sie für ältere Versionen zu gelten schienen.

Für Xcode 8.3.2:

  1. Xcode-> Einstellungen-> Konten
  2. Wählen Sie die Apple ID aus
  3. Doppelklicken Sie auf Ihr Team
  4. Klicken Sie unten links auf "+", um "Zertifikat erstellen" zu erstellen.
  5. Wählen Sie iOS-Entwicklung
  6. Klicken Sie auf "Fertig".

Danach konnte ich feststellen, dass Xcode das neueste Profil verwendet hat. Klicken Sie dazu unter "Ziele"> "Allgemein"> "Signieren" neben "Xcode Managed Profile" auf das Symbol "i", und bestätigen Sie, dass das "Erstellungsdatum" das neue Profil enthält.

0
lundhjem

Ich dachte, ein Doppelklick auf das heruntergeladene Bereitstellungsprofil würde es in xCode Organizer Archive platzieren, aber das würde für mich nicht funktionieren. Die folgenden Schritte funktionierten schließlich für mich.

  1. XCode öffnen
  2. Gehen Sie zu Produkt -> Ziel -> iOS-Gerät
  3. Gehen Sie zu Produkt -> Archiv
0