Error de firma de código Cada vez que intento reemplazar archivos de stock en la nueva aplicación SceneKit


Así que Xcode 8 fue lanzado recientemente y todavía no estoy seguro de lo que exactamente podría estar causando este problema (podría ser solo el hecho de que es una versión beta de Xcode o tal vez que de alguna manera estoy haciendo algo incorrectamente).

El problema a mano es que estoy tratando de crear una nueva aplicación SceneKit y actualmente estoy jugando con el .archivos scn.

He creado un .archivo scn, " hero.scn" dentro de un héroe".scnassets" y también proporcionó un .archivo png dentro de la protagonista.scnassets carpeta con el nombre de "heroTexture.png "

El código normalmente proporcionado por Xcode 8.0 beta 1 para este proyecto en el "GameViewController.swift " archivo fue editado de la siguiente manera:

Código original:

...
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)))

Código editado:

...
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)))

Error recibido:

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

Conclusión de la Pregunta:

¿Por qué recibo un error de firma cuando todo lo que he hecho es simplemente reemplazar archivos?

Nota lateral: I saber cómo conseguir el problema de firma de código para desaparecer, pero que implica reiniciar todo el proyecto (que no me importa). Sin embargo, el problema al que me enfrento es que cada vez que cambio los archivos, obtengo este error.

P. S: Aquí hay una estructura de archivos solo para facilitar.FileStruct

Author: Mohammad Al-Ahdal, 2016-06-15

7 answers

Deshazte de este error de compilación en tres sencillos pasos:

1) elimine la carpeta más actual relacionada con su aplicación en DerivedData (~/Library/Developer/Xcode/DerivedData)

2) en la terminal, cd al dir del proyecto actual

3) ejecutar

Xattr-rc .

Para eliminar todos los atributos extendidos (generalmente relacionados con archivos de imagen editados previamente en Photoshop)

Reconstruir su aplicación!

 108
Author: ecume des jours,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-07 15:21:59

El error proviene de atributos dentro de sus archivos de imagen.

Aquí hay un comando simple para encontrar todos sus archivos png y eliminar sus atributos. Ejecute esto en el directorio raíz de su proyecto desde terminal. Reconstruya, limpie y solucione el problema.

find . -type f -name '*.png' -exec xattr -c {} \;
 18
Author: Mark McCorkle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-06 11:48:53

Recibí el error resource fork, finder information, or similar detritus not allowed después de haber instalado la versión de desarrollo de macOS y en mi caso fue causado por atributos no válidos en algunos de mis archivos.

Lo arreglé buscando com.apple.FinderInfo atributos establecidos en mis archivos como este

ls -alR@ . > investigate.txt

Ahora abre la investigación.txt en su editor de texto favorito y realizar una búsqueda de com.apple.FinderInfo y borrar atributos en todos los archivos que tienen este conjunto de atributos. Puedes hacerlo usando

xattr -c <filename> por ejemplo, xattr -c iTunesArtwork.png

Una vez que limpié todo mi archivos Pude firmar mi aplicación de código de nuevo.

 9
Author: Peter Theill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-24 08:29:20

Fija! Aparentemente fue un error con el nuevo Xcode. Lo que debe hacer es reiniciar OS X / macOS y limpiar el proyecto. ¡Debería funcionar después de eso!

 1
Author: Mohammad Al-Ahdal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-16 06:18:22

No pude eliminar la información del finder y reiniciar no funcionó. Para mí (tengo Sierra beta instalado) fue porque el proyecto estaba en mi carpeta de documentos que se sincroniza con iCloud. Tan pronto como hice un proyecto no en una carpeta sincronizada con iCloud funcionó bien, por lo que el error podría tener que ver con iCloud también / en lugar de con Xcode

 1
Author: Sophie Clark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-18 09:00:27

Esto parece aclarar el problema. Hacer una .atlas folder (i.e. " myImages.atlas"), fuera de la carpeta raíz del proyecto. Añadir sus imágenes a la .carpeta atlas. A continuación, desde dentro en el proyecto "añadir archivos a..." el .carpeta atlas, (nota: evite poner el .atlas folder en el art.scnasstes carpeta, y asegúrese de que el proyecto en "limpiado" antes de reconstruir)

 1
Author: Lawrence Fletcher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-15 05:04:37

Este es un cambio de refuerzo de seguridad que se introdujo con iOS 10, macOS Sierra, watchOS 3 y tvOS 10.

La firma de código ya no permite que ningún archivo de un paquete de aplicaciones tenga un atributo extendido que contenga una bifurcación de recursos o información del Finder.

Para ver qué archivos están causando este error, ejecute este comando en Terminal:

X xattr-lr

Reemplazando con la ruta a su paquete de aplicaciones real.

Aquí hay un ejemplo de este comando en acción:

$ xattr-lr Foo.app

/Applications/Foo.aplicación: com.manzana.FinderInfo:

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

También puede eliminar todos los atributos extendidos de su paquete de aplicaciones con el comando xattr:

X xattr-cr

Tenga en cuenta que navegar por los archivos dentro de un paquete con el comando Mostrar contenido del paquete de Finder puede hacer que se agregue información de Finder a esos archivos. De lo contrario, audite su proceso de compilación para ver dónde se extiende se están agregando atributos.

 1
Author: Kalpesh Panchasara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-28 14:36:49