webentwicklung-frage-antwort-db.com.de

App-Installation fehlgeschlagen. Keine Codesignatur gefunden

Ich habe kürzlich ein Upgrade auf Xcode 10 durchgeführt und damit begonnen, unsere App auf Switch 4.2 zu aktualisieren. Nach einem Tag, in dem ich Frameworks von Drittanbietern neu erstellt und verschiedene Probleme umgangen habe, konnte ich unsere App auf den neuen Simulatoren ausführen.

Als ich jedoch versuchte, auf meinem persönlichen Telefon (mit iOS 12.0 GM) zu laufen, trat beim Installieren der App ein Fehler auf, wie im Titel beschrieben.

Ich weiß, dass es eine Menge von bereitsbeantworteteFragen zu diesem Thema auf SO & im Internet gibt, jedoch konnte ich keine von bekommen diese zu arbeiten.

Es hat mich nun seit ungefähr anderthalb Tagen blockiert und ich habe mich gefragt, ob jemand einen Einblick in die Art und Weise hatte, wie dies gemildert werden könnte.

Hier sind die Schritte, die ich bisher unternommen habe und die nicht funktioniert haben (vielleicht werden sie in Zukunft für andere funktionieren!):

  1. Abgeleitete Daten löschen
  2. Löschen und erneutes Herunterladen aller Bereitstellungsprofile auf meinem Computer
  3. Bereinigen des Build-Verzeichnisses (cmd + k & cmd + shft + k)
  4. Löschen der Original-App von meinem Handy
  5. Xcode neu starten (Version 10.0 (10A254a) [the GM])
  6. Mac neu starten (Macbook Pro 2018 mit macOS High Sierra)
  7. Gerät neu starten (iPhone X mit iOS 12.0 GM)
  8. Viele verschiedene Kombinationen der oben genannten, einschließlich alle auf einmal
  9. Bereitstellungsprofile für die App auf developer.Apple.com neu generieren (wir verwenden manuelle Signierung)
  10. Löschen und Neuerstellen von Bereitstellungsprofilen für die App auf developer.Apple.com
  11. Tim Cook eine Ziege geopfert
  12. Stellen Sie sicher, dass das Signaturzertifikat mit dem Bereitstellungsprofil übereinstimmt
  13. Das Löschen der alten Version von Xcode von meinem Computer und das Versichern von Befehlszeilentools sind in der xcode 10.0 g Version enthalten
  14. Löschen und erneutes Installieren von Xcode 10.0 GM
  15. Stellen Sie sicher, dass für alle kopierten Frameworks code sign on copy aktiviert ist
  16. Neuaufbau aller Frameworks über Carthage mit dem Swift 4.2-Compiler (denken Sie daran, dass alles auf dem Simulator funktioniert).
  17. Sichergestellt, dass die erforderliche Codesignatur in der SDKSettings.plist auf YES gesetzt ist
  18. hat alle alten Signaturzertifikate auf meinem Computer gelöscht
  19. Gelöschte und neu erstellte Zertifikate auf developer.Apple.com
  20. Mein Gerät wurde entfernt und erneut zu developer.Apple.com hinzugefügt
  21. Die Codesignatur wurde von manuell auf automatisch geändert
  22. Es wurde sichergestellt, dass Signaturzertifikate Developer und nicht Distribution sind.

Jede Hilfe wäre sehr dankbar :)

Update : Ich habe versucht, das Programm auf einem neuen Computer von Grund auf neu herunterzuladen und wiederherzustellen, und das gleiche Problem tritt auf. Interessanterweise kann ich die App gut archivieren und validieren.

Ich habe auch versucht, ein leeres Projekt mit derselben Paket-ID zu signieren, und es hat einwandfrei funktioniert. Das Problem liegt entweder in unseren Frameworks von Drittanbietern oder in einer seltsamen Einstellung, die beim Übergang von Xcode 9.4 aktiviert wurde. Beginnen Sie damit, Frameworks von Drittanbietern nacheinander zu entfernen, bis ich diese kompilieren kann.

Update 2 : Immer noch kein Glück. Versucht, die meisten Frameworks und nichts auszuräumen. Hier sind die Geräteprotokolle, die sich fragen, ob Skipping a profile because of error 0xe8008012 etwas damit zu tun hat:

https://Gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5

Update 3 : Also konnte ich es installieren, indem ich das Carthage Copy-Frameworks-Skript in den Erstellungsphasen auskommentierte (und die abgeleiteten Daten anschließend bereinigte/bereinigte). Das bedeutet natürlich, dass es beim Booten abstürzt, da diese Frameworks fehlen, aber das Problem liegt entweder bei Carthage oder einem der verknüpften Carthage-Frameworks. Nicht unsere Signaturzertifikate, Bereitstellungsprofile oder Codebasis. Versuchen Sie, diese Frameworks nacheinander zu entfernen, und ich werde sie hier aktualisieren.

Final Update Endlich herausgefunden. Die Lösung stellte sich als ziemlich nischenhaft heraus (siehe unten), aber hoffentlich dient diese Frage als Zusammenstellung aller Lösungen, die mit diesem Problem im Internet zu tun haben, haha.

18
Josh

Herausgefunden:

Ich bin mit Carthage auf dieses Problem gestoßen: https://github.com/Carthage/Carthage/issues/2472 und habe deren vorgeschlagene Lösung zum Setzen von EXPANDED_CODE_SIGN_IDENTITY = '' verwendet, als ich Sachen auf Xcode 10 übertrug. 

Offensichtlich verursacht diese Linie, dass sich Karthago beim Kopieren von Frameworks selbst verletzt, was den Fehler verursacht. Ich habe die neueste Version von Carthage heruntergeladen, um das Problem zu beheben. Anschließend wurde die Zeile EXPANDED_CODE_SIGN_IDENTITY='' entfernt und alles funktionierte. Was für eine Zeitverschwendung.

7
Josh

Ich bin mir nicht sicher, ob dies auch Ihr Fall ist, aber ich bin kürzlich auf diesen Fehler gestoßen, als ich versuchte, eine React Native-App auf dem iPhone auszuführen. Es begann, nachdem ich Lottie-Bibliothek für React Native integriert hatte

Das Problem wurde durch dieses in Build-Phasen hinzugefügte Run-Skript verursacht: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/ . Das Skript konnte keine Architekturen aus Lottie.framework extrahieren, wodurch eine "input file (.../Lottie.framework/Lottie) must be a fat file when the -extract option is specified

Um dieses Problem zu beheben, fügte ich im Skript eine Überprüfung hinzu, um Nicht-Fett-Dateien zu überspringen:

# ...
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -iq "Non-fat file"
then
echo "This is a non-fat file, skipping"
continue
fi

EXTRACTED_ARCHS=()
# ...
4
mihai1990

Ich hatte das gleiche Problem mit Xcode 10.0 (10A255). 

Ungültige Signatur - Eine versiegelte Ressource fehlt oder ist ungültig. Die Datei unter Pfad [xxxx.app/xxxxx] ist nicht ordnungsgemäß signiert.

xcode 9.4.1 (9F2000) konnte die App immer ohne Probleme einreichen.

Ich konnte das Problem beheben, indem alle unterstützenden Dateien (txt, json, rtf, html, ttf usw.) gelöscht und anschließend erneut hinzugefügt wurden.

Ich empfehle Ihnen, einen Build ohne die Dateien einzureichen. Wenn dies funktioniert, können Sie sie Schritt für Schritt erneut hinzufügen

3
user10389784

In meinem Fall hatte ich sowohl eine ungültige iPhoneXS-Bereitstellung als auch einen Paketkennungskonflikt. Mein Projekt wurde nach einem Xcode-Upgrade versucht und es wurde ein neues Telefon angefügt. Nachdem Sie die obigen Schritte ausgeführt haben (vollständig neu erstellte Schlüsselkette und Profile, gelöschter persistenter Ordner usw.). 

Auf Zielprojekteinstellungen:

  1. Setzen Sie die Bundle-ID von com.proj.app auf einen anderen Wert, z. B. com.proj.app2
  2. Ändern Sie den Produktnamen von Product in Product123

Ich bin mir ziemlich sicher, dass nur der Paketkennungskonflikt den normalen automatischen Eintrag meines Geräts in die bereitgestellten Geräte blockiert hat. 

  1. Rückkennungen in Normal ändern (falls gewünscht)
1
wcribbs

In den Bauphasen/Karthago des Projektziels setzen Sie den Karthago-Befehl wie folgt:

EXPANDED_CODE_SIGN_IDENTITY = '' Carthage Copy-Frameworks 

Dies ist nur eine zeitliche Lösung, während das Problem mit den get-Umgebungen gelöst wird.

0
user23