web-dev-qa-db-de.com

Codesignaturfehler Immer wenn ich versuche, in einer neuen SceneKit-Anwendung Originaldateien zu ersetzen

Daher wurde Xcode 8 kürzlich veröffentlicht und ich bin mir immer noch nicht sicher, was genau dieses Problem verursachen könnte (möglicherweise liegt es nur an der Tatsache, dass es sich um eine Beta-Version von Xcode handelt oder dass ich etwas falsch mache).

Das Problem ist, dass ich versuche, eine neue SceneKit-Anwendung zu erstellen, und derzeit mit den .scn-Dateien herumspiele.

Ich habe eine .scn-Datei "hero.scn" in einer "hero.scnassets" -Datei erstellt und auch eine .png-Datei im Ordner "hero.scnassets" mit dem Namen "heroTexture.png" bereitgestellt.

Der Code, der normalerweise von Xcode 8.0 Beta 1 für dieses Projekt in der Datei "GameViewController.Swift" bereitgestellt wird, wurde wie folgt bearbeitet:

Originalcode:

...
let scene = SCNScene(named: "art.scnassets/ship.scn")!
...
let ship = scene.rootNode.childNode(withName: "ship", recursively: true)!
ship.run(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))

Code bearbeitet:

...
let scene = SCNScene(named: "hero.scnassets/hero.scn")!
...
let hero = scene.rootNode.childNode(withName: "hero", recursively: true)!
hero.run(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))

Fehler erhalten:

.../Xapp.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

Fazit der Frage:

Warum erhalte ich einen Signaturfehler, wenn ich nur Dateien ersetzt habe?

Nebenbemerkung: Ich weiß, wie das Problem mit der Codesignatur behoben werden kann, aber dazu muss das gesamte Projekt neu gestartet werden (was mir nichts ausmacht). Das Problem, dem ich jedoch gegenüberstehe, ist, wenn ich die Dateien ändere, ich diesen Fehler erhalte.

P.S: Hier ist eine Dateistruktur, nur zur Vereinfachung . FileStruct

25

Beseitigen Sie diesen Build-Fehler in drei einfachen Schritten:

1) Löschen Sie den aktuellsten Ordner für Ihre App in DerivedData (~/Library/Developer/Xcode/DerivedData).

2) im terminal cd zum aktuellen projektverzeichnis

3) laufen

xattr -rc.

entfernen aller erweiterten Attribute (normalerweise im Zusammenhang mit Bilddateien, die zuvor in Photoshop bearbeitet wurden)

baue deine app neu!

109
ecume des jours

Der Fehler beruht auf Attributen in Ihren Bilddateien.

Hier ist ein einfacher Befehl, um alle Ihre PNG-Dateien zu finden und ihre Attribute zu entfernen. Führen Sie dies im Stammverzeichnis Ihres Projekts vom Terminal aus. Neu aufgebaut, sauber und Problem gelöst.

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

Ich habe den Fehler resource fork, Finder information, or similar detritus not allowed Erhalten, nachdem ich die Entwicklungsversion von macOS installiert habe, und in meinem Fall wurde dies durch ungültige Attribute in einigen meiner Dateien verursacht.

Ich habe das Problem behoben, indem ich nach com.Apple.FinderInfo - Attributen gesucht habe, die für meine Dateien wie folgt festgelegt wurden

ls [email protected] . > investigate.txt

Öffnen Sie jetzt die Datei investigate.txt in Ihrem bevorzugten Texteditor und führen Sie eine Suche nach com.Apple.FinderInfo Durch und löschen Sie die Attribute für alle Dateien, für die dieses Attribut festgelegt ist. Sie können das mit tun

xattr -c <filename> Z. xattr -c iTunesArtwork.png

Nachdem ich alle meine Dateien gelöscht hatte, konnte ich meine App erneut codieren und signieren.

9
Peter Theill

Ich konnte die Finder-Informationen nicht entfernen und der Neustart funktionierte nicht. Für mich (ich habe Sierra Beta installiert) lag es daran, dass sich das Projekt in meinem Ordner "Dokumente" befand, der mit iCloud synchronisiert ist. Sobald ich ein Projekt erstellt habe, das sich nicht in einem mit iCloud synchronisierten Ordner befindet, hat es einwandfrei funktioniert, sodass der Fehler möglicherweise auch mit iCloud/statt mit Xcode zu tun hat

1
Sophie Clark

Dies scheint das Problem zu klären. Erstellen Sie einen Atlas-Ordner (d. H. "MyImages.atlas") außerhalb des Projektstammordners. Fügen Sie Ihre Bilder zum .atlas-Ordner hinzu. Fügen Sie dann im Projekt "Dateien hinzufügen zu ..." den Ordner ".atlas" hinzu.

1

Repariert! Anscheinend war es ein Fehler mit dem neuen Xcode. Starten Sie OS X/macOS neu und bereinigen Sie das Projekt. Danach sollte es funktionieren!

1

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

Die Codesignatur ermöglicht es keiner Datei in einem App-Bundle mehr, ein erweitertes Attribut zu haben, das einen Ressourcenzweig oder Finder-Informationen enthält.

Führen Sie den folgenden Befehl in Terminal aus, um festzustellen, welche Dateien diesen Fehler verursachen:

$ xattr -lr

ersetzen durch den Pfad zu Ihrem eigentlichen App-Bundle.

Hier ist ein Beispiel für diesen Befehl in Aktion:

$ xattr -lr Foo.app

/Anwendungen/Foo.app: com.Apple.FinderInfo:

00000000 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 | ................ |

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

$ xattr -cr

Beachten Sie, dass das Durchsuchen von Dateien in einem Bundle mit dem Finder-Befehl "Show Package Contents" dazu führen kann, dass Finder-Informationen zu diesen Dateien hinzugefügt werden. Überprüfen Sie andernfalls Ihren Erstellungsprozess, um festzustellen, wo die erweiterten Attribute hinzugefügt werden.

1