Error de signo de código en macOS High Sierra Xcode: no se permite la bifurcación de recursos, la información del Finder o detritos similares


265

Ya lo intenté: Error de signo de código en macOS Sierra, Xcode 8

Por favor, vea la imagen que muestra el error ingrese la descripción de la imagen aquí

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

En la sección Firma de código, me permite seleccionar el perfil y el certificado ... pero sigue dando error. ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Cómo arreglar este problema ?


1
hiciste limpio y "alt" limpio?
thorb65

¿medio? Acabo de recrear certificados de cuentas de xcode y volví a generar perfiles en el sitio web y volví a intentarlo ... todavía no tuve suerte.
iPhoneProcessor

La respuesta de Arnold Roas a continuación hizo el truco para mi proyecto. Pero también puede que tenga que hacer un Producto> Limpiar en XCode para que la compilación tenga éxito después.
Fredrik Johansson

plus para cocos2d-x
fnc12

Respuestas:


587

Solución 1:

Sitio web para desarrolladores de Apple Resuelve el problema anterior aquí .

Ejecute el siguiente comando en la terminal: Primero vaya a la carpeta raíz de proyectos

 xattr -cr <path_to_project_dir>

Limpia Xcode y Re Build. Salud

Solución 2:

Simplemente vaya al directorio raíz del proyecto y ejecute este comando xattr -cr.

xattr -cr .

Limpia Xcode y Re Build. Hecho.

Solución 3:

Puede solucionar este problema buscando archivos que contengan información del buscador.

En la terminal, vaya al directorio raíz del proyecto y ejecute

ls -alR@ . > kundapura.txt

Esto crea kundapura.txt en el directorio actual. Ahora busque com.apple.FinderInfo y borre estos atributos para todos los archivos. Puedes hacerlo así

xattr -c <filename>

Ejemplo: xattr -c guru.png

Una vez que borra todo, entonces el signo de código funciona. Limpia Xcode y Re Build. Salud

Solución 4: inspirada en la respuesta de Mark McCorkle

En la terminal, vaya al directorio raíz del proyecto y ejecute uno por uno comando

  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 {} \;

Limpia Xcode y Re Build. Hecho.


77
Este error de señal de código fijo en Xcode 8. Gran solución.
iPhoneProcessor

44
Tengo 110 archivos con eso. ¿Cuál sería un comando bash que los trataría automáticamente a todos?
Fawkes

2
¡Gracias, trabajó para mí!
Amit Ajmera

55
Este es un salvavidas. Pasé horas en esto.
Jackson

44
¡Muchas gracias por compartir, me ahorró horas, si no días!
G Chris DCosta

171

El error es de atributos dentro de sus archivos de imagen. Esto sucedió cuando nuestro diseñador gráfico guardó imágenes de Photoshop con atributos.

Aquí hay un comando simple para encontrar todos sus archivos png y eliminar sus atributos. Ejecute esto en el directorio raíz de sus proyectos desde la terminal. Limpiar y reconstruir; problema resuelto.

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

12
Esta debería ser la respuesta aceptada. Más simple, más rápido y no requiere esfuerzo manual. Tenía 80 archivos con problemas, según la respuesta de @ NatureFriend.
Roger Oba

3
¡Gracias! Las horas que pasé tratando de encontrar la respuesta a este extraño error, ¡qué colosal pérdida de tiempo!
feliz el

Una solución más rápida sin terminal para mí fue simplemente arrastrar todas las imágenes en ImageOptimizer (que también destruye todos los atributos inútiles).
blackjack75

Había guardado un nuevo ícono de pixelmator y tenía el mismo problema. Gracias.
Guy Lowe

Esto funcionó para mí. Obtuve el permiso denegado en el comando 'xcattr -cr' anterior (incluso se me ordenó hacerlo a través de la documentación de Apple mencionada anteriormente: developer.apple.com/library/archive/qa/qa1940/_index.html Running Xcode 9.3 en High Sierra 10.13.4.
Randoramma

95

Si tiene este error al codificar una aplicación:

no se permite la bifurcación de recursos, la información del Finder o detritos similares El comando / usr / bin / codesign falló con el código de salida 1

Vaya a la carpeta raíz de su proyecto y ejecute

find . | xargs -0 xattr -c

Esto borrará los atributos para todos los archivos.

En Sierra, las reglas sobre lo que puede estar en un paquete firmado se han endurecido, y los tenedores de recursos ya no están permitidos. AppleScript ha estado guardando información en los tenedores de recursos para siempre, aunque esa información no se ha utilizado durante mucho tiempo. Con Sierra, cuando guarda un script, esta información de la bifurcación de recursos ya no se guardará.

Significa que no puede codificar un script que se guardó por última vez en una versión anterior a Sierra; tienes que ahorrar en Sierra para poder iniciar sesión en Sierra.

Las personas que probablemente se verán afectadas son quienes agrupan otros scripts dentro de sus scripts (¿cordova?). No podrán firmar el script del contenedor hasta que todos los scripts incrustados hayan sido guardados en Sierra.

ACTUALIZAR:

Parece que esto también funciona:

xattr -rc .

Si tiene un error de permisos insuficientes, intente anteponer sudo: sudo xattr -rc .


44
Lo intenté en la terminal y "espacio insuficiente para la discusión"
Fawkes

1
Esto funcionó como un encanto! También tuve que hacer un Producto> Limpiar en XCode, ¡pero luego mi proyecto se construyó!
Fredrik Johansson

Gracias hombre, funciona. En mi caso, el problema era que puedo probar en el dispositivo sin problemas, pero cuando lo intento en el simulador no funciona y muestra el problema anterior. Su solución solucionó mi problema.
Mahmud Ahsan

xattr -rc. ¡Trabajo!
mate

Estaba construyendo con Corona SDK y enfrentaba el mismo problema. xattr -rc Funcionó para mí.
Rais Iqbal

31

La forma más fácil de manejar los atributos en sus archivos de origen es hacer que Xcode borre el archivo antes de que ejecute codeign. Para hacer esto:

  1. Seleccione su objetivo en XCode
  2. Seleccione la pestaña Fases de construcción
  3. Presione el símbolo +
  4. Seleccione Nueva fase de secuencia de comandos de ejecución
  5. Ingrese lo siguiente para el script:

    xattr -cr ~ / Library / Developer / Xcode / DerivedData || echo claro

Ahora, cuando construyas tu objetivo, eliminará cualquier atributo que tenga un código de código roto. Al borrar en esta etapa, no tiene que alterar su código fuente / directorio de proyecto.

La parte "|| echo Clear" de la secuencia de comandos garantiza que la compilación del proyecto continúe incluso si se producen errores xattr.

Este método es bueno si utiliza programas como DropBox en su repositorio de código que agrega los atributos, ya que no cambia su proyecto de origen, solo el archivo construido.

Es posible que deba cambiar la ruta para que coincida con su directorio DerivedData; esta ruta se mostrará junto al error de firma de código.

xattr codesign corrección xcode


1
El problema solo aparece para mí en un proyecto creado a partir de un proyecto idéntico que usa ⌘-D en el Finder. Por alguna razón, ninguna de las soluciones más populares funcionó para mí. Este lo hizo.
clozach

1
¡GRACIAS! Después de 2 horas de buscar una solución, esto funcionó.
Carter Cobb

1
¡Finalmente! ¡Después de horas de probar otras soluciones, esto lo solucionó! Intente esto primero, pero sustituya la ruta que se muestra por el error de
código

para mí, el problema era una imagen en el código fuente ... así que agregué un script de ejecución que hizo esto xattr -cr "$ PROJECT_DIR"
Little Watchman

Muchas gracias, esto todavía funciona. En mi caso, agregué xattr -cr ~ / Users / msc / OneDrive / 01 Work / APP / Flutter / lts-flutter / build / ios / Debug-iphoneos || echo Clear
mactrix

26

He usado el siguiente comando. Usar ventana de terminal. Navegue a su proyecto y ejecute lo siguiente:

xattr -rc .

Sí, a veces solo limpiar los atributos dentro del directorio del proyecto ayuda ... Lame Apple, por qué hacer cosas tan malas
Anton Malyshev

Además de la respuesta más votada, esto también funcionó como una alternativa
Lance Samaria el

También tuve que limpiar la carpeta del proyecto <cmd + K> después para que esto funcione
Lance Samaria

21

Hay una respuesta oficial de Apple para este problema en Technical Q&A QA1940 .

Este es un cambio 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 en 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 la Terminal: xattr -lr <path_to_app_bundle>

También puede eliminar todos los atributos extendidos de su paquete de aplicaciones con el comando xattr: xattr -cr <path_to_app_bundle>

<path_to_app_bundle>se puede reemplazar con el directorio de su proyecto Xcode. Por ejemplo~/Development/MyProject


Después de trabajar con casi todas las demás soluciones propuestas, xattr -lr <path_to_app_bundle>finalmente se obtienen los archivos correctos. Obtuve un Localizable.strings de la agencia con Finder-Tags y eso causó que fallara el código.
JanR

¡Perdí 2 días en esto y esta solución finalmente funcionó para mí!
bhakti123

16

Todo sobre borrar archivos está bien, pero es tedioso para múltiples proyectos.

Las aplicaciones de gráficos (como Photoshop en versiones anteriores) escriben información adicional (ahora la llamamos metadatos ...) de una manera antigua en archivos externos, o venían de archivos OSX anteriores, como:

"com.apple.ResourceFork" y "com.apple.FinderInfo", al descomprimir la carpeta, por ejemplo.

Xcode 8 se niega a agregarlo a una compilación (ya que los agregaste a un proyecto con un "git --add." Tal vez ...) Puedes encontrarlos en el terminal de forma recursiva y eliminarlos, pero puede ser tedioso.

Escribí una pequeña utilidad gratuita para eliminarla ... espero que pueda ayudar ...

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


Funcionó para mi. ¡Muchas gracias por tu útil aplicación!
Azul

Esta fue la única solución que funcionó conmigo, aunque la aplicación se ha bloqueado muchas veces "probablemente debido a la gran cantidad de archivos del proyecto", pero ha limpiado los archivos y el proyecto finalmente estaba funcionando. ¡Gracias!
XIII

¡Descargué tu aplicación y me limpió todo! ¡Gracias!
Bobby

Tener un +1. Gracias
Megaetron

¡Arreglaré el bloqueo para un proyecto grande tan pronto como tenga algo de tiempo libre!
ingconti

11

Solución simple:-

Cómo lo hice [Trabajando para mí]

Paso 1: - Ve a esta carpeta - desde tu buscador presiona la opción Ir -> Ir a la carpeta

luego escriba la ruta de su proyecto como este ejemplo: - Library / Developer / Xcode / DerivedData / yourprojectname / Build / Products / Debug-iphoneos

Ahora puede ver una ventana emergente con la lista de archivos disponibles. Allí verá su archivo App.app [No haga nada, solo espere el paso 2].

Paso 2: - Abra la nueva Terminal y escriba solo cd, luego arrastre el paso 1 yourApp.app a la terminal, ahora obtendrá la ruta de la aplicación, ahora presione el botón enter.

Paso 3: - Ahora escribe este comando **

xattr -rc.

No se pierda "." (Punto) presione el botón enter.

Eso es todo, vaya a su proyecto Xcode y limpie y vuelva a ejecutar.


10

----- En caso de que no pueda aplicar las soluciones anteriores, debido a la falta de conocimiento bash o algo más.

Tuve este problema tan pronto como habilité iCloud Drive en mi Sierra. Y mi proyecto estaba en una carpeta que se sincronizó con iCloud Drive. Supongo que esto es lo que agrega esos atributos adicionales.

Solución temporal:

Deshabilite iCloud Drive para la carpeta donde se encuentra su proyecto.


Me mudé de iCloud Drive al escritorio y funciona correctamente. Gracias
drasick

Esto fue parte de la solución para mí. Tenía un proyecto en mi escritorio que estaba siendo respaldado en iCloud bajo Sierra. Todavía necesitaba escribir xattr -rc. en la terminal para eliminar los archivos ofensivos después de mover el proyecto fuera del escritorio. Ninguna de las otras soluciones funcionó para este paso
Roger Pingleton el

Este también fue el problema para mí: iCloudDrive causa este error realmente molesto, informé de un error a Apple -> 31740606
LukeSideWalker

Este fue esencialmente mi problema también, pero no tuve que deshabilitar iCloud para mi carpeta de proyecto, ni mover la carpeta del proyecto, ni nada de eso. Acabo de entrar en Xcode Prefs-> Ubicaciones-> Avanzado y seleccioné la opción "Única" para Build Location. Había estado usando una ubicación de compilación en la subcarpeta del archivo del proyecto xcode, que estaba en la unidad iCloud. Creo que el valor predeterminado es Unique, y no sé por qué lo cambié, quizás para que sea más fácil encontrar el ejecutable después de una compilación.
Daver

10

Para aquellos (como yo) que solo están tratando de desarrollar una aplicación sin tener que quitar los atributos extendidos en cada nuevo PNG creado por Photoshop agregado al objetivo de macOS, puede deshabilitar temporalmente la firma de código agregando una configuración de compilación definida por el usuario:

CODE_SIGNING_ALLOWED = No 

Obviamente, uno que distribuye una aplicación necesita eventualmente tratar el problema, pero esto permite el desarrollo en casos como el mío, donde no era necesariamente sencillo omitir la firma de código en Sierra (en OS X / Xcode anterior era más fácil hacerlo).

Según el comentario de RGriffith, aquí hay algunas capturas de pantalla para aquellos que no están seguros de cómo se agrega la configuración de compilación personalizada.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


¿Dónde estás agregando esto?
RGriffiths

4

Deberá eliminar la carpeta del paquete de la aplicación y reconstruir la aplicación como se explica a continuación.

Mi aplicación se llama: aumentar

En la ventana de terminal, vaya a la carpeta de su aplicación, por ejemplo: cd / Users / username / Library / Developer / Xcode / DerivedData /

En la ventana de terminal, ejecute el comando para la carpeta de su aplicación, por ejemplo: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Limpiar> Construir> Ejecutar.

También hay una aplicación gratuita en la Mac Appstore llamada "CleanDetritus" que eliminará estas.


1
Estoy usando Flutter para generar la aplicación iOS y Clean> Build> Run from Xcode resolvió el error "bifurcación de recursos, información del buscador o detritos similares no permitidos" en la consola de flutter.
Juan Valera

Funcionó, gracias! La solución para mí fue ejecutar "xattr -rc". en la carpeta del proyecto de datos derivados en su lugar en la carpeta del proyecto.
BIOS-K

2

Este problema me vino ayer.

(What's wrong) Actualicé los recursos de imagen reemplazando manualmente el archivo en el buscador y fallé con este error de compilación.

(What's right)No actualice la imagen de esta manera. Después de eso, arrastré las imágenes a 'xcassets' en Xcode. No más errores aparecen de nuevo.


2

El problema está en los datos derivados. Debe limpiar los datos derivados y luego limpiar el proyecto y la compilación. Por favor revise este enlace.


1

Mi problema es cada cambio que hago en el código y ejecuto nuevamente el error vuelve a aparecer. Luego encuentro una solución para ejecutar el comando automáticamente cada compilación / ejecución de código.

Gracias a @ rich-able descubrí "Ejecutar script". Luego puse el comando "xattr -cr". en el campo.

Solución XCODE


1

La solución más simple puede ser si está utilizando git . Tratar:

$ git stash
$ git stash pop

Git no almacena metadatos de archivos, lo anterior lo eliminará todo.


Tuve este problema en Xcode 9. La solución anterior solucionó el problema. Debe tener el proyecto bajo el control de fuente de git y aún no ha confirmado ningún archivo.
Anessence

0

Mi problema fue que usé cordova para construir la aplicación hace aproximadamente 1 año, pero no era compatible con la nueva versión de xcode, así que simplemente la usé cordova build iosy funcionó nuevamente.


0

Una de las mejores soluciones es Ir al terminal, escriba esto

xattr -cr "Full path of your project"

Para encontrar la ruta completa de su botón derecho, haga clic en proyecto Xcode-> obtener información -> copiar ruta y reemplazar con. Luego escriba debajo del comando

xattr -cr "Full path of your project"

Limpiar y construir hecho.


este ladrillo mi proyecto, no lo usen chicos
Naveed Ahmad

Esto obstaculizó mi esquema. y arreglando ese problema, elimino el archivo .scodeproj accidentalmente y luego creé un nuevo proyecto y transferí archivos anteriores
Naveed Ahmad

Entonces sucedió debido a tu error. Intenté el código de residencia y no tengo ningún problema.
Rajesh Maurya

Bro después de usar el comando anterior en mi caso creó un problema para mí. luego para resolver eso me metí en otro problema.
Naveed Ahmad

0

Si los comandos xattr no funcionan, esto puede deberse a un error de XCode 9: intentemos eliminar y volver a agregar la carpeta de recursos (en mi caso, era un .xcassets) que contiene los archivos afectados de Xcode. (debe comprender cuáles son los archivos afectados anteriormente mediante el comando xattr -lr)


0

Abra la terminal y simplemente ejecute este comando.

xattr -cr "ruta al archivo .app"


0

También estoy enfrentando el mismo problema, lo solucioné simplemente reiniciando mi Macbook.


0

Descubrí que si agrego color tagen la carpeta debajo deDerivedData , dará el error anterior al depurar en el dispositivo.

Elimine la color Tagsolución de este error para mí.

ingrese la descripción de la imagen aquí


0

Puedes eliminar los datos derivados Xcode -> Preferences

Y haga clic en la flecha a continuación Derived Data, y vacíe la carpetaDerived Data


0

No sé qué me pasó, pero cuando estaba ejecutando la aplicación flutter en el simulador, me encontré con el error. Usé el flutter cleancomando y eliminé los datos derivados y luego todo va bien.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.