Code Sign Error in macOS High Sierra Xcode - Ressourcengabel, Finder-Informationen oder ähnliches Detritus nicht zulässig


263

Bereits ausprobiert: Code Sign Error unter macOS Sierra, Xcode 8

Bitte sehen Sie das Bild, das den Fehler zeigt Geben Sie hier die Bildbeschreibung ein

CodeSign /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app
    cd "/Volumes/Development/Project/Top Best Games/19. Lets Flow/35/let's FLOW - source/proj.ios_mac"
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Distribution: New Free Games (2CHN583K4J)"
Provisioning Profile: "Super Flow Flipp AppStore"
                      (c6c30d2a-1025-4a23-8d12-1863ff684a05)

    /usr/bin/codesign --force --sign E48B98966150110E55EAA9B149F731901A41B37F --entitlements /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Intermediates/Flow.build/Debug-iphoneos/Super\ Flow\ Flip.build/Super\ Flow\ Flip.app.xcent --timestamp=none /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app

/Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super Flow Flip.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

Im Abschnitt Code Sign kann ich Profil und Zertifikat auswählen ... aber es wird immer noch ein Fehler angezeigt. Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Wie kann ich dieses Problem beheben?


1
hast du sauber und "alt" sauber gemacht?
Thorb65

meint? Ich habe gerade Zertifikate von Xcode-Konten neu erstellt und Profile auf der Website neu generiert und erneut versucht ... immer noch kein Glück.
iPhoneProcessor

Die Antwort von Arnold Roas unten hat den Trick für mein Projekt getan. Möglicherweise müssen Sie jedoch auch ein Produkt> Bereinigen in XCode ausführen, damit die Kompilierung anschließend erfolgreich ist.
Fredrik Johansson

plus für cocos2d-x
fnc12

Antworten:


583

Lösung 1:

Apple Developer Website Antworten über Problem hier .

Führen Sie den folgenden Befehl im Terminal aus: Gehen Sie zuerst zum Projekt-Stammordner

 xattr -cr <path_to_project_dir>

Xcode bereinigen und neu erstellen. Prost

Lösung 2:

Gehen Sie einfach zum Projektstammverzeichnis und führen Sie diesen Befehl xattr -cr aus.

xattr -cr .

Xcode bereinigen und neu erstellen. Getan.

Lösung 3:

Sie können dieses Problem beheben, indem Sie Dateien suchen, die Finder-Informationen enthalten.

Gehen Sie im Terminal zum Projektstammverzeichnis und führen Sie es aus

ls -alR@ . > kundapura.txt

Dadurch wird kundapura.txt im aktuellen Verzeichnis erstellt. Suchen Sie nun nach com.apple.FinderInfo und löschen Sie diese Attribute für alle Dateien. Sie können es so machen

xattr -c <filename>

Beispiel: xattr -c guru.png

Sobald Sie alles gelöscht haben, funktioniert das Codezeichen. Xcode bereinigen und neu erstellen. Prost

Lösung 4: Inspiriert von Mark McCorkles Antwort

Gehen Sie im Terminal zum Stammverzeichnis des Projekts und führen Sie einen Befehl nach dem anderen aus

  find . -type f -name '*.jpeg' -exec xattr -c {} \;
  find . -type f -name '*.jpg' -exec xattr -c {} \;
  find . -type f -name '*.png' -exec xattr -c {} \;
  find . -type f -name '*.json' -exec xattr -c {} \;

Xcode bereinigen und neu erstellen. Getan.


7
Dieser Fehler bei der Code-Vorzeichen in Xcode 8 wurde behoben. Tolle Lösung.
iPhoneProcessor

4
Ich habe 110 Dateien damit. Was wäre ein Bash-Befehl, der alle automatisch behandelt?
Fawkes

2
Danke, hat für mich gearbeitet !!
Amit Ajmera

5
Dies ist ein Lebensretter. Ich habe Stunden damit verbracht.
Jackson

4
Vielen Dank für das Teilen, hat mir Stunden, wenn nicht Tage gespart!
G Chris DCosta

171

Der Fehler ist auf Attribute in Ihren Bilddateien zurückzuführen. Dies geschah von unserem Grafikdesigner, der Bilder aus Photoshop mit Attributen speicherte.

Hier ist ein einfacher Befehl, um alle Ihre PNG-Dateien zu finden und ihre Attribute zu entfernen. Führen Sie dies im Terminalverzeichnis Ihres Projekts vom Terminal aus. Reinigen und wieder aufbauen; Problem gelöst.

find . -type f -name '*.png' -exec xattr -c {} \;

12
Dies sollte die akzeptierte Antwort sein. Einfacher, schneller und ohne manuellen Aufwand. Laut der Antwort von @ NatureFriend hatte ich 80 Dateien mit Problemen.
Roger Oba

3
Danke dir! Die Stunden, die ich damit verbracht habe, die Antwort auf diesen seltsamen Fehler zu finden - was für eine kolossale Zeitverschwendung!
lppier

Eine schnellere Lösung ohne Terminal bestand für mich darin, alle Bilder in ImageOptimizer zu ziehen (wodurch auch alle nutzlosen Attribute verworfen werden).
Blackjack75

Ich hatte ein neues Symbol von Pixelmator gespeichert und hatte das gleiche Problem. Vielen Dank.
Guy Lowe

Dies funktionierte für mich. Ich erhielt die Berechtigung für den obigen Befehl 'xcattr -cr' verweigert (sogar über die oben aufgeführte Apples-Dokumentation angewiesen: developer.apple.com/library/archive/qa/qa1940/_index.html Ausführen von Xcode 9.3 auf High Sierra 10.13.4.
Randoramma

95

Wenn Sie diesen Fehler beim Codesignieren einer App haben:

Ressourcengabel, Finder-Informationen oder ähnliches Detritus nicht zulässig Befehl / usr / bin / Codesign ist mit Exit-Code 1 fehlgeschlagen

Gehen Sie zu Ihrem Projektstammordner und führen Sie ihn aus

find . | xargs -0 xattr -c

Dadurch werden Attribute für alle Dateien gelöscht.

In Sierra wurden die Regeln für das, was in einem signierten Bundle enthalten sein kann, verschärft, und Ressourcengabeln sind nicht mehr zulässig. AppleScript speichert Informationen für immer in Ressourcengabeln, obwohl diese Informationen seit langem nicht mehr verwendet werden. Wenn Sie in Sierra ein Skript speichern, werden diese Ressourcengabelinformationen nicht mehr gespeichert.

Dies bedeutet, dass Sie kein Skript codieren können, das zuletzt in einer Version vor Sierra gespeichert wurde. Sie müssen in Sierra sparen, um in Sierra unterschreiben zu können.

Betroffen sind wahrscheinlich Personen, die andere Skripte in ihren Skripten bündeln (Cordova?). Sie können das Containerskript erst signieren, wenn alle eingebetteten Skripte unter Sierra erneut gespeichert wurden.

AKTUALISIEREN:

Scheint so auch zu funktionieren:

xattr -rc .

Wenn Sie einen Fehler mit unzureichenden Berechtigungen haben, versuchen Sie, sudo voranzustellen: sudo xattr -rc .


4
Ich habe es im Terminal versucht und "nicht genügend Platz für Argumente"
Fawkes

1
Das hat als Zauber gewirkt! Musste auch ein Produkt> Clean in XCode machen, aber dann wurde mein Projekt erstellt!
Fredrik Johansson

Danke Mann, es funktioniert. In meinem Fall war das Problem, dass ich ohne Probleme im Gerät testen kann, aber wenn ich es im Simulator versuche, funktioniert es nicht und zeigt das obige Problem. Ihre Lösung hat mein Problem behoben.
Mahmud Ahsan

xattr -rc. Arbeit!
Matt

Ich habe mit Corona SDK gebaut und war mit dem gleichen Problem konfrontiert. xattr -rc Hat für mich gearbeitet.
Rais Iqbal

31

Der einfachste Weg, um Attribute in Ihren Quelldateien zu verarbeiten, besteht darin, Xcode das Archiv löschen zu lassen, bevor es Codesign ausführt. Um dies zu tun:

  1. Wählen Sie Ihr Ziel in XCode aus
  2. Wählen Sie die Registerkarte Build-Phasen
  3. Drücken Sie das + Symbol
  4. Wählen Sie New Run Script Phase
  5. Geben Sie für das Skript Folgendes ein:

    xattr -cr ~ / Library / Developer / Xcode / DerivedData || Echo Löschen

Wenn Sie jetzt Ihr Ziel erstellen, werden alle Attribute gelöscht, die das Codesign beschädigt hätten. Wenn Sie zu diesem Zeitpunkt löschen, müssen Sie Ihren Quellcode / Ihr Projektverzeichnis nicht ändern.

Der Teil "|| echo Clear" des Skripts stellt sicher, dass die Projekterstellung auch bei xattr-Fehlern fortgesetzt wird.

Diese Methode ist gut, wenn Sie Programme wie DropBox in Ihrem Code-Repository verwenden, die die Attribute hinzufügen, da dadurch Ihr Quellprojekt nicht geändert wird, sondern nur das erstellte Archiv.

Möglicherweise müssen Sie den Pfad so ändern, dass er mit Ihrem DerivedData-Verzeichnis übereinstimmt. Dieser Pfad wird neben dem Codesign-Fehler angezeigt.

xattr Codesign xcode fix


1
Das Problem tritt für mich nur in einem Projekt auf, das aus einem ansonsten identischen Projekt mit ⌘-D im Finder erstellt wurde. Aus irgendeinem Grund hat keine der beliebtesten Lösungen für mich funktioniert. Dieser tat es.
Clozach

1
VIELEN DANK! Nach 2 Stunden Suche nach einer Lösung funktionierte dies.
Carter Cobb

1
Schließlich! Nach stundenlangem Ausprobieren anderer Lösungen wurde dies behoben !! Versuchen Sie dies zuerst, aber ersetzen Sie den Pfad, der durch den Codesign-Fehler angezeigt wird
jmf1205

Für mich war das Problem ein Bild im Quellcode ... also habe ich ein Ausführungsskript hinzugefügt, das dieses xattr -cr "$ PROJECT_DIR"
Little Watchman

Vielen Dank, das funktioniert immer noch. In meinem Fall habe ich xattr -cr ~ / Users / msc / OneDrive / 01 Work / APP / Flutter / lts-flutter / build / ios / Debug-iphoneos || hinzugefügt echo Clear
mactrix

26

Ich habe folgenden Befehl verwendet. Terminalfenster verwenden. Navigieren Sie zu Ihrem Projekt und führen Sie Folgendes aus:

xattr -rc .

Ja, manchmal hilft nur das Löschen von Attributen im Projektverzeichnis. Lahm Apple, warum man so beschissene Dinge macht
Anton Malyshev

Zusätzlich zu der am besten bewerteten Antwort funktionierte dies auch als Alternative
Lance Samaria

Ich musste auch den Projektordner <cmd + K> danach bereinigen, damit dies funktioniert
Lance Samaria

21

Es gibt eine offizielle Apple-Antwort auf dieses Problem in den technischen Fragen und Antworten QA1940 .

Dies ist eine sicherheitsrelevante Änderung, die mit iOS 10, macOS Sierra, watchOS 3 und tvOS 10 eingeführt wurde.

Durch die Codesignatur kann keine Datei in einem App-Bundle mehr über ein erweitertes Attribut verfügen, das einen Ressourcengabel oder Finder-Informationen enthält.

Führen Sie diesen Befehl im Terminal aus, um festzustellen, welche Dateien diesen Fehler verursachen: xattr -lr <path_to_app_bundle>

Sie können auch alle erweiterten Attribute mit dem Befehl xattr aus Ihrem App-Bundle entfernen: xattr -cr <path_to_app_bundle>

<path_to_app_bundle>kann durch das Verzeichnis Ihres Xcode-Projekts ersetzt werden. Beispielsweise~/Development/MyProject


Nachdem fast alle anderen Lösungsvorschläge xattr -lr <path_to_app_bundle>durchgearbeitet wurden, führte dies schließlich zu den richtigen Dateien. Ich habe von der Agentur eine Localizable.strings mit Finder-Tags erhalten, die dazu geführt haben, dass das Codesign fehlgeschlagen ist.
JanR

Ich habe 2 Tage damit verschwendet und diese Lösung hat endlich für mich funktioniert!
Bhakti123

16

Alles über das Löschen von Dateien ist in Ordnung, aber für mehrere Projekte mühsam.

Grafik-Apps (wie Photoshop in alten Versionen) schreiben zusätzliche Informationen (wir nennen sie jetzt Metadaten ..) auf alte Weise in externe Dateien, oder sie stammen aus älteren OSX-Dateien wie:

"com.apple.ResourceFork" und "com.apple.FinderInfo", wenn Sie beispielsweise einen Ordner entpacken.

Xcode 8 weigert sich, es einem Build hinzuzufügen (da Sie es einem Projekt mit einem "git --add" hinzugefügt haben, vielleicht ..). Sie können es rekursiv im Terminal finden und löschen, können aber mühsam sein.

Ich habe ein kleines kostenloses Dienstprogramm geschrieben, um es zu löschen. Ich hoffe, es kann helfen.

https://itunes.apple.com/us/app/cleandetritus/id1161108431?ls=1&mt=12


Es hat bei mir funktioniert. Vielen Dank für Ihre nützliche App!
Blau

Dies war die einzige Lösung, die mit mir funktioniert hat, obwohl die App "wahrscheinlich aufgrund der großen Anzahl der Projektdateien" viele Male abgestürzt ist, aber die Dateien bereinigt hat und das Projekt endlich funktioniert hat. Vielen Dank!
XIII

Habe deine App heruntergeladen und alles für mich aufgeräumt! Danke dir!
Bobby

Habe eine +1. Vielen Dank
Megaetron

Ich werde den Absturz für ein großes Projekt beheben, sobald ich etwas Freizeit habe!
Ingconti

11

Einfache Lösung: -

Wie ich es gemacht habe [für mich arbeiten]

Schritt 1: - Gehen Sie zu diesem Ordner - drücken Sie in Ihrem Finder die Option Los -> Gehe zu Ordner

Geben Sie dann Ihren Projektpfad wie folgt ein: - Bibliothek / Entwickler / Xcode / DerivedData / Ihr Projektname / Build / Produkte / Debug-iphoneos

Jetzt sehen Sie ein Fenster mit einer Liste der verfügbaren Dateien. Dort sehen Sie IhreApp.app-Datei [Tun Sie nichts, warten Sie nur auf Schritt 2].

Schritt 2: - Öffnen Sie das neue Terminal und geben Sie einfach cd ein. Ziehen Sie dann einfach Schritt 1 yourApp.app zum Terminal. Jetzt erhalten Sie den Pfad für die App. Drücken Sie nun die Eingabetaste.

Schritt 3: - Geben Sie nun diesen Befehl ein **

xattr -rc.

Verpassen Sie nicht "." (Punkt) Drücken Sie die Eingabetaste.

Das war's. Gehen Sie zu Ihrem Xcode-Projekt und bereinigen Sie es und führen Sie es erneut aus.


10

----- Falls Sie die oben genannten Lösungen aufgrund mangelnden Bash-Wissens oder etwas anderem nicht anwenden können.

Ich hatte dieses Problem, sobald ich iCloud Drive auf meiner Sierra aktiviert habe. Mein Projekt befand sich in einem Ordner, der mit iCloud Drive synchronisiert wurde. Ich nehme an, das ist es, was diese zusätzlichen Attribute hinzufügt.

Vorübergehende Lösung:

Deaktivieren Sie iCloud Drive für den Ordner, in dem sich Ihr Projekt befindet.


Ich bin von iCloud Drive auf den Desktop umgezogen und arbeite ordnungsgemäß. Danke
Drasick

Dies war Teil der Lösung für mich. Ich hatte ein Projekt auf meinem Desktop, das unter Sierra in iCloud gesichert wurde. Ich musste noch xattr -rc eingeben. im Terminal, um die fehlerhaften Dateien zu löschen, nachdem das Projekt vom Desktop verschoben wurde. Keine der anderen Lösungen funktionierte für diesen Schritt
Roger Pingleton

Dies war auch das Problem für mich: iCloudDrive verursacht diesen wirklich nervigen Fehler. Ich habe Apple einen Fehler gemeldet -> 31740606
LukeSideWalker

Dies war im Wesentlichen auch mein Problem, aber ich musste iCloud für meinen Projektordner nicht deaktivieren oder den Projektordner verschieben oder ähnliches. Ich bin gerade zu Xcode Prefs-> Locations-> Advanced gegangen und habe die Option "Unique" für Build Location ausgewählt. Ich hatte einen Build-Speicherort im Unterordner der xcode-Projektdatei verwendet, die sich auf dem iCloud-Laufwerk befand. Ich denke, die Standardeinstellung ist Unique, und ich weiß nicht, warum ich sie jemals geändert habe, um das Auffinden der ausführbaren Datei nach einem Build zu erleichtern.
Daver

10

Für diejenigen (wie mich), die nur versuchen, eine App zu entwickeln, ohne erweiterte Attribute für jedes neu in Photoshop erstellte PNG entfernen zu müssen, das dem macOS-Ziel hinzugefügt wurde, können Sie die Codesignatur vorübergehend deaktivieren, indem Sie eine benutzerdefinierte Build-Einstellung hinzufügen:

CODE_SIGNING_ALLOWED = No 

Natürlich muss sich einer, der eine App verteilt, irgendwann mit dem Problem befassen, aber dies ermöglicht die Entwicklung in Fällen wie meinem, in denen es nicht unbedingt einfach war, die Codesignatur in Sierra wegzulassen (unter früheren OS X / X-Codes war dies einfacher).

Laut RGriffiths Kommentar sind hier einige Screenshots für diejenigen, die sich nicht sicher sind, wie die benutzerdefinierte Build-Einstellung hinzugefügt wird.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


Wo fügst du das hinzu?
RGriffiths

4

Sie müssen den App-Bundle-Ordner löschen und die App wie unten erläutert neu erstellen.

Meine App heißt: Augment

Gehen Sie im Terminalfenster zu Ihrem App-Ordner, z. B.: Cd / Users / username / Library / Developer / Xcode / DerivedData /

Führen Sie im Terminalfenster den Befehl für Ihren App-Ordner aus, z. B.: Xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Bereinigen> Erstellen> Ausführen.

Es gibt auch eine kostenlose App im Mac Appstore namens "CleanDetritus", mit der diese entfernt werden können.


1
Ich verwende Flutter, um die iOS-App zu generieren, und Clean> Build> Run from Xcode hat den Fehler "Ressourcengabel, Finder-Informationen oder ähnlicher Detritus nicht zulässig" auf der Flutter-Konsole behoben.
Juan Valera

Es hat funktioniert, danke! Die Lösung für mich war die Ausführung von "xattr -rc". im abgeleiteten Datenprojektordner statt im Projektordner.
BIOS-K

2

Dieses Problem ist mir gestern gekommen.

(What's wrong) Ich habe die Bildressourcen durch manuelles Ersetzen der Datei im Finder aktualisiert und bin mit diesem Kompilierungsfehler fehlgeschlagen.

(What's right)Aktualisieren Sie das Bild nicht auf diese Weise. Danach habe ich Bilder in 'xcassets' in Xcode gezogen. Es wird kein Fehler mehr angezeigt.


2

Das Problem liegt in den abgeleiteten Daten. Sie sollten die abgeleiteten Daten bereinigen und dann das Projekt bereinigen und erstellen. Bitte überprüfen Sie diesen Link.


1

Mein Problem ist jede Änderung, die ich am Code vornehme und erneut ausführe. Der Fehler tritt erneut auf. Dann finde ich eine Lösung, um den Befehl bei jeder Kompilierung / Ausführung von Code automatisch auszuführen.

Dank @ rich-able habe ich "Run Script" entdeckt. Dann habe ich den Befehl "xattr -cr" gesetzt. im Feld.

XCODE-Lösung


1

Die einfachste Lösung ist möglicherweise, wenn Sie git verwenden . Versuchen:

$ git stash
$ git stash pop

Git speichert keine Dateimetadaten, die oben genannten entfernen alles.


Ich hatte dieses Problem unter Xcode 9. Die obige Lösung hat das Problem behoben. Sie sollten ein Projekt unter Git-Quellcodeverwaltung haben und noch keine Datei festgeschrieben haben.
Anessence

0

Mein Problem war, dass ich Cordova vor ungefähr einem Jahr zum Erstellen der App verwendet habe, diese jedoch nicht mit der neuen Version von xcode kompatibel war. Ich habe sie einfach verwendet cordova build iosund sie hat wieder funktioniert.


0

Eine der besten Lösungen ist Gehe zum Terminaltyp

xattr -cr "Full path of your project"

Um den vollständigen Pfad Ihrer rechten Maustaste zu finden, klicken Sie auf Xcode-Projekt -> Informationen abrufen -> Pfad kopieren und durch ersetzen. Geben Sie dann den folgenden Befehl ein

xattr -cr "Full path of your project"

Reinigen und fertig bauen.


dieser Ziegel mein Projekt, benutze es nicht Jungs
Naveed Ahmad

Dies hat mein Schema gemauert. und Behebung dieses Problems Ich entferne versehentlich die .scodeproj-Datei und erstelle dann ein neues Projekt und übertrage vorherige Dateien
Naveed Ahmad

Dann geschah es aufgrund Ihres Fehlers. Ich habe versucht, Code zu speichern und habe kein Problem.
Rajesh Maurya

Bro nach der Verwendung des obigen Befehls in meinem Fall hat ein Problem für mich erstellt. Um das zu lösen, steckte ich in einem anderen Problem.
Naveed Ahmad

0

Wenn die xattr-Befehle nicht ausreichen, kann dies an einem XCode 9-Fehler liegen: Versuchen wir, den Ressourcenordner (in meinem Fall eine .xcassets) zu entfernen und erneut hinzuzufügen, der die betroffenen Dateien von Xcode enthält. (Sie sollten verstehen, welche Dateien zuvor mit dem Befehl xattr -lr betroffen waren.)


0

Öffnen Sie das Terminal und führen Sie einfach diesen Befehl aus.

xattr -cr "Pfad zur .app-Datei"


0

Ich habe auch das gleiche Problem, das durch einen Neustart meines Macbooks behoben wurde.


0

Ich habe festgestellt, dass beim Hinzufügen color tagzum Ordner unter DerivedDatabeim Debuggen auf dem Gerät der oben genannte Fehler angezeigt wird.

Entfernen Sie das Problem, color Tagum diesen Fehler für mich zu beheben.

Geben Sie hier die Bildbeschreibung ein


0

Sie können die abgeleiteten Daten entfernen Xcode -> Preferences

Klicken Sie auf den Pfeil unten Derived Dataund leeren Sie den OrdnerDerived Data


0

Ich weiß nicht, was mit mir passiert ist, aber als ich die Flatter-App auf dem Simulator ausführte, stieß ich auf den Fehler. Ich habe flutter cleanBefehl verwendet und die abgeleiteten Daten entfernt und dann geht alles gut.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.