Erreur de signature de code dans macOS High Sierra Xcode - fourchette de ressources, informations du Finder ou détritus similaires non autorisés

265

Déjà essayé: Erreur de signature de code sur macOS Sierra, Xcode 8

Veuillez voir l'image montrant l'erreur entrez la description de l'image ici

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

Dans la section Code Sign, cela me permet de sélectionner le profil et le certificat ... mais donne toujours une erreur. entrez la description de l'image ici

entrez la description de l'image ici

Comment résoudre ce problème ?

iPhoneProcessor
la source
1
avez-vous rendu propre et "alt" propre?
thorb65
veux dire? Je viens de recréer des certificats à partir de comptes xcode et de générer des profils sur le site Web et de réessayer ... toujours pas de chance.
iPhoneProcessor
La réponse d'Arnold Roas ci-dessous a fait l'affaire pour mon projet. Mais vous devrez peut-être également faire un produit> nettoyer dans XCode pour que la compilation réussisse ensuite.
Fredrik Johansson
plus pour cocos2d-x
fnc12

Réponses:

588

Solution 1:

Site Web des développeurs Apple Répond au problème ci-dessus ici .

Exécuter la commande ci-dessous dans le terminal: Premier dossier racine des projets goto

 xattr -cr <path_to_project_dir>

Nettoyez Xcode et reconstruisez. À votre santé

Solution 2:

Accédez simplement au répertoire racine du projet et exécutez cette commande xattr -cr.

xattr -cr .

Nettoyez Xcode et reconstruisez. Terminé.

Solution 3:

Vous pouvez résoudre ce problème en recherchant des fichiers contenant des informations sur le Finder.

Dans le terminal, allez au répertoire racine du projet et exécutez

ls -alR@ . > kundapura.txt

Cela crée kundapura.txt dans le répertoire courant. Recherchez maintenant com.apple.FinderInfo et effacez ces attributs pour tous les fichiers. Vous pouvez le faire comme ça

xattr -c <filename>

Exemple: xattr -c guru.png

Une fois que vous avez tout effacé, le signe de code fonctionne. Nettoyez Xcode et reconstruisez. À votre santé

Solution 4: inspiré par la réponse de Mark McCorkle

Dans le terminal, accédez au répertoire racine du projet goto et exécutez la commande une par une

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

Nettoyez Xcode et reconstruisez. Terminé.

Gourou
la source
7
Cette erreur de signe de code fixe dans Xcode 8. Excellente solution.
iPhoneProcessor
4
J'ai 110 fichiers avec ça. Quelle serait une commande bash qui les traiterait automatiquement tous?
Fawkes
2
Merci, a travaillé pour moi !!
Amit Ajmera
5
C'est une bouée de sauvetage. J'ai passé des heures là-dessus.
Jackson
4
Merci beaucoup pour le partage, ça m'a fait gagner des heures sinon des jours!
G Chris DCosta
171

L'erreur provient des attributs contenus dans vos fichiers image. Cela s'est produit lorsque notre concepteur graphique a enregistré des images de Photoshop avec des attributs.

Voici une commande simple pour trouver tous vos fichiers png et supprimer leurs attributs. Exécutez cela dans le répertoire racine de vos projets à partir du terminal. Nettoyer et reconstruire; problème résolu.

find . -type f -name '*.png' -exec xattr -c {} \;
Mark McCorkle
la source
12
Ce devrait être la réponse acceptée. Plus simple, plus rapide et ne nécessite aucun effort manuel. J'ai eu 80 fichiers avec des problèmes, selon la réponse de @ NatureFriend.
Roger Oba
3
Je vous remercie! Les heures que j'ai passées à essayer de trouver la réponse à cette étrange erreur - quelle perte de temps colossale!
lppier
Une solution sans terminal plus rapide pour moi consistait simplement à faire glisser toutes les images dans ImageOptimizer (ce qui supprime également tous les attributs inutiles).
blackjack75
J'avais enregistré une nouvelle icône de pixelmator et j'avais le même problème. Merci.
Guy Lowe
Cela a fonctionné pour moi .. Je recevais une autorisation refusée sur la commande 'xcattr -cr' ci-dessus (même dirigée à faire via la documentation Apples répertoriée ci-dessus: developer.apple.com/library/archive/qa/qa1940/_index.html Exécution de Xcode 9.3 sur High Sierra 10.13.4
Randoramma
95

Si vous rencontrez cette erreur lors de la signature de code d'une application:

fourchette de ressources, informations du Finder ou détritus similaires non autorisés La commande / usr / bin / codesign a échoué avec le code de sortie 1

Accédez au dossier racine de votre projet et exécutez

find . | xargs -0 xattr -c

Cela effacera les attributs de tous les fichiers.

Dans Sierra, les règles sur ce qui peut être dans un ensemble signé ont été resserrées et les fourches de ressources ne sont plus autorisées. AppleScript enregistre les informations dans les fourchettes de ressources pour toujours, bien que ces informations soient inutilisées depuis longtemps. Avec Sierra, lorsque vous enregistrez un script, ces informations de fourchette de ressources ne seront plus enregistrées.

Cela signifie que vous ne pouvez pas signer un code qui a été enregistré pour la dernière fois dans une version antérieure à Sierra; vous devez enregistrer dans Sierra pour pouvoir vous connecter à Sierra.

Les personnes susceptibles d'être affectées sont celles qui regroupent d'autres scripts dans leurs scripts (cordova?). Ils ne pourront pas signer le script de conteneur tant que tous les scripts intégrés n'auront pas été réenregistrés sous Sierra.

METTRE À JOUR:

Il semble que cela fonctionne aussi:

xattr -rc .

Si vous avez une erreur d'autorisation insuffisante, essayez d'ajouter le sudo: sudo xattr -rc .

Arnold Roa
la source
4
Je l'ai essayé dans le terminal et "espace insuffisant pour argumenter"
Fawkes
1
Cela a fonctionné comme un charme! Il fallait aussi faire un Produit> Nettoyer dans XCode, mais ensuite mon projet s'est construit!
Fredrik Johansson
Merci mec, ça marche. Dans mon cas, le problème était que je peux tester sans problème sur l'appareil, mais lorsque j'essaie dans le simulateur, cela ne fonctionne pas et montre le problème ci-dessus. Votre solution a résolu mon problème.
Mahmud Ahsan
xattr -rc. Travail!
mat
Je construisais avec Corona SDK et fais face au même problème. xattr -rc a fonctionné pour moi.
Rais Iqbal
31

La façon la plus simple de gérer les attributs de vos fichiers source est de demander à Xcode de vider l'archive avant d'exécuter codesign. Pour faire ça:

  1. Sélectionnez votre cible dans XCode
  2. Sélectionnez l'onglet Build Phases
  3. Appuyez sur le symbole +
  4. Sélectionner une nouvelle phase de script d'exécution
  5. Entrez les informations suivantes pour le script:

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

Maintenant, lorsque vous construisez votre cible, il effacera tous les attributs qui auraient cassé le code. En effaçant à ce stade, vous n'avez pas à modifier votre code source / répertoire de projet.

La partie "|| echo Clear" du script garantit que la construction du projet continue même en cas d'erreurs xattr.

Cette méthode est bonne si vous utilisez des programmes tels que DropBox sur votre référentiel de code qui ajoutent les attributs, car cela ne change pas votre projet source, seulement l'archive construite.

Vous devrez peut-être modifier le chemin pour qu'il corresponde à votre répertoire DerivedData - ce chemin sera affiché à côté de l'erreur de signature de code.

xattr codesign xcode fix

A.Badger
la source
1
Le problème n'apparaît pour moi que dans un projet créé à partir d'un projet par ailleurs identique à l'aide de ⌘-D dans le Finder. Pour une raison quelconque, aucune des solutions les plus populaires n'a fonctionné pour moi. Celui-ci l'a fait.
clozach
1
MERCI! après 2 heures de recherche d'une solution, cela a fonctionné.
Carter Cobb
1
Finalement! Après des heures à essayer d'autres solutions, cela a résolu le problème !! Essayez d'abord, mais remplacez le chemin indiqué par l'erreur de code
jmf1205
pour moi, le problème était une image dans le code source ... alors j'ai ajouté un script d'exécution qui a fait ce xattr -cr "$ PROJECT_DIR"
Little Watchman
merci beaucoup, cela fonctionne toujours. Dans mon cas, j'ai ajouté xattr -cr ~ / Users / msc / OneDrive / 01 Work / APP / Flutter / lts-flutter / build / ios / Debug-iphoneos || echo Clear
mactrix
26

J'ai utilisé la commande suivante. Utilisez la fenêtre du terminal. Accédez à votre projet et exécutez ce qui suit:

xattr -rc .
Ram G.
la source
Oui, parfois, seule la suppression des attr dans le répertoire du projet aide .. Lame Apple, pourquoi faire des choses aussi merdiques
Anton Malyshev
En plus de la réponse la plus votée, cela a également fonctionné comme une alternative
Lance Samaria
J'ai également dû nettoyer le dossier du projet <cmd + K> par la suite pour que cela fonctionne
Lance Samaria
21

Il existe une réponse officielle d'Apple à ce problème dans les Q&R techniques QA1940 .

Il s'agit d'un changement de renforcement de la sécurité qui a été introduit avec iOS 10, macOS Sierra, watchOS 3 et tvOS 10.

La signature de code ne permet plus à aucun fichier d'un ensemble d'applications d'avoir un attribut étendu contenant une fourchette de ressources ou des informations du Finder.

Pour voir quels fichiers sont à l'origine de cette erreur, exécutez cette commande dans Terminal: xattr -lr <path_to_app_bundle>

Vous pouvez également supprimer tous les attributs étendus de votre ensemble d'applications avec la commande xattr: xattr -cr <path_to_app_bundle>

<path_to_app_bundle>peut être remplacé par le répertoire de votre projet Xcode. Par exemple~/Development/MyProject

camarade
la source
Après avoir travaillé sur presque toutes les autres solutions proposées, vous obtenez xattr -lr <path_to_app_bundle>enfin les bons fichiers. Vous avez obtenu une chaîne Localizable.strings de l'agence avec Finder-Tags et celles-ci ont provoqué l'échec de la signature de code.
JanR
J'ai perdu 2 jours là-dessus et cette solution a finalement fonctionné pour moi!
bhakti123
16

Tout sur l'effacement des fichiers est bien, mais fastidieux pour plusieurs projets.

les applications graphiques, (comme photoshop dans les anciennes versions) écrivent des informations supplémentaires (nous les appelons maintenant des métadonnées ..) à l'ancienne dans des fichiers externes, ou elles sont venues d'anciens OSX, des fichiers comme:

"com.apple.ResourceFork" et "com.apple.FinderInfo", lors de la décompression d'un dossier, par exemple.

Xcode 8 refuse de l'ajouter à une build (comme vous les avez ajoutés à un projet avec un "git --add." Peut-être ..) Vous pouvez les trouver récursivement dans le terminal et les supprimer, mais cela peut être fastidieux.

J'ai écrit un petit utilitaire gratuit pour le supprimer .. j'espère que cela peut aider ..

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

ingconti
la source
Ça a marché pour moi. Merci beaucoup pour votre application utile!
Blue
Celui-ci était la seule solution qui a fonctionné avec moi, bien que l'application se soit plantée plusieurs fois "probablement en raison du grand nombre de fichiers de projet" mais elle a nettoyé les fichiers et le projet fonctionnait enfin. Merci!
XIII
J'ai téléchargé votre application et elle a tout nettoyé pour moi! Je vous remercie!
Bobby
Avoir un +1. Merci
Megaetron
Je vais réparer le crash pour les grands projets dès que j'aurai du temps libre!
ingconti
11

Solution simple: -

Comment j'ai fait [Travailler pour moi]

Étape 1: - Accédez à ce dossier - à partir de votre Finder, appuyez sur l'option Aller -> Aller au dossier

puis tapez votre chemin de projet comme cet exemple: - Library / Developer / Xcode / DerivedData / yourprojectname / Build / Products / Debug-iphoneos

Maintenant, vous pouvez voir une fenêtre pop avec la liste des fichiers disponibles, là vous voyez votre fichier App.app [Ne faites rien, attendez simplement l'étape 2].

Étape 2: - Ouvrez un nouveau terminal et tapez simplement cd puis faites simplement glisser l'étape 1 yourApp.app vers le terminal, maintenant vous obtiendrez le chemin de l'application, appuyez maintenant sur le bouton Entrée.

Étape 3: - Tapez maintenant cette commande **

xattr -rc.

Ne manquez pas "." (Dot) appuyez sur le bouton Entrée.

Voilà, allez dans votre projet Xcode et nettoyez et exécutez à nouveau.

Abdu
la source
10

----- Dans le cas où vous ne pouvez pas appliquer les solutions ci-dessus, en raison d'un manque de connaissances bash ou autre chose.

J'ai eu ce problème dès que j'ai activé iCloud Drive sur mon Sierra. Et mon projet était dans un dossier qui a été synchronisé avec iCloud Drive. Je suppose que c'est ce qui ajoute ces attributs supplémentaires.

Solution temporaire:

Désactivez iCloud Drive pour le dossier où se trouve votre projet.

Fumseck
la source
Je suis passé d'iCloud Drive au bureau et fonctionne correctement. Merci
drasick
Cela faisait partie de la solution pour moi. J'avais un projet sur mon bureau qui était en cours de sauvegarde sur iCloud sous Sierra. J'avais encore besoin de taper xattr -rc. dans le terminal pour supprimer les fichiers incriminés après avoir déplacé le projet hors du bureau. Aucune des autres solutions n'a fonctionné pour cette étape
Roger Pingleton
C'était aussi le problème pour moi: iCloudDrive provoque cette erreur vraiment ennuyeuse, j'ai signalé un bogue à Apple -> 31740606
LukeSideWalker
C'était essentiellement mon problème aussi, mais je n'avais pas à désactiver iCloud pour mon dossier de projet, ni à déplacer le dossier de projet, ou quelque chose comme ça. Je viens d'entrer dans Xcode Prefs-> Locations-> Avancé et j'ai sélectionné l'option "Unique" pour Build Location. J'avais utilisé un emplacement de construction dans le sous-dossier du fichier de projet xcode, qui se trouvait sur le lecteur iCloud. Je pense que la valeur par défaut est Unique, et je ne sais pas pourquoi je l'ai changé, peut-être pour faciliter la recherche de l'exécutable après une build.
daver
10

Pour ceux (comme moi) qui essaient simplement de développer une application sans avoir à supprimer les attributs étendus sur chaque nouveau PNG créé par Photoshop ajouté à la cible macOS, vous pouvez désactiver temporairement la signature de code en ajoutant un paramètre de construction défini par l'utilisateur:

CODE_SIGNING_ALLOWED = No 

De toute évidence, celui qui distribue une application doit éventuellement résoudre le problème, mais cela permet le développement dans des cas comme le mien où il n'était pas nécessairement simple d'omettre la signature de code dans Sierra (sur les anciens OS X / Xcode, il était plus facile de le faire).

Selon le commentaire de RGriffith, voici quelques captures d'écran pour ceux qui ne savent pas comment le paramètre de construction personnalisé est ajouté.

entrez la description de l'image ici

entrez la description de l'image ici

Bobjt
la source
Où ajoutez-vous cela?
RGriffiths du
4

Vous devrez supprimer le dossier de l'ensemble d'applications et reconstruire l'application comme expliqué ci-dessous.

Mon application s'appelle: augmenter

Dans la fenêtre du terminal, accédez à votre dossier d'application, par exemple: cd / Users / nom d'utilisateur / Library / Developer / Xcode / DerivedData /

Dans la fenêtre de terminal, exécutez la commande pour votre dossier d'application, par exemple: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Nettoyer> Construire> Exécuter.

Il existe également une application gratuite sur Mac Appstore appelée "CleanDetritus" qui supprimera ces derniers.

velhala
la source
1
J'utilise Flutter pour générer l'application iOS et Nettoyer> Construire> Exécuter à partir de Xcode a résolu l'erreur "ressource fork, informations du Finder ou détritus similaires non autorisés" sur la console Flutter.
Juan Valera
Cela a fonctionné, merci! La solution pour moi était d'exécuter "xattr -rc". dans le dossier du projet de données dérivées à la place dans le dossier du projet.
BIOS-K
2

Ce problème m'est venu hier.

(What's wrong) J'ai mis à jour les ressources d'image en remplaçant manuellement le fichier dans le Finder et j'ai échoué avec cette erreur de compilation.

(What's right)Ne mettez pas à jour l'image de cette façon. Après cela, j'ai fait glisser des images vers «xcassets» dans Xcode. Plus aucune erreur n'apparaît à nouveau.

ManuQiao
la source
2

Le problème réside dans les données dérivées. Vous devez nettoyer les données dérivées, puis nettoyer le projet et générer. Veuillez vérifier ce lien.

Yogesh Dalavi
la source
1

Mon problème est chaque modification que je fais dans le code et réexécute l'erreur réapparaît. Ensuite, je trouve une solution pour exécuter la commande automatiquement à chaque compilation / exécution de code.

Grâce à @ rich-able, j'ai découvert "Run Script". Ensuite, j'ai mis la commande "xattr -cr." Sur le terrain.

Solution XCODE

Andrey
la source
1

La solution la plus simple peut être si vous utilisez git . Essayer:

$ git stash
$ git stash pop

Git ne stocke pas les métadonnées des fichiers, ce qui précède les supprimera.

emp
la source
J'ai eu ce problème sous Xcode 9. La solution ci-dessus a résolu le problème. Vous devriez avoir un projet sous contrôle de source git et vous n'avez encore validé aucun fichier.
Anessence
0

Mon problème était que j'ai utilisé cordova pour créer l'application il y a environ 1 an, mais ce n'était pas compatible avec la nouvelle version de xcode, j'ai donc simplement utilisé cordova build ioset cela a fonctionné à nouveau.

Frederik Witte
la source
0

L'une des meilleures solutions est Aller au type de terminal

xattr -cr "Full path of your project"

Pour trouver le chemin complet de votre clic droit sur le projet Xcode-> obtenir des informations -> copier le chemin et le remplacer par. Tapez ensuite la commande ci-dessous

xattr -cr "Full path of your project"

Nettoyez et construisez.

Rajesh Maurya
la source
cette brique mon projet, ne l'utilisez pas les gars
Naveed Ahmad
Cela a maquillé mon plan. et en corrigeant ce problème, je supprime accidentellement le fichier .scodeproj, puis j'ai créé un nouveau projet et transféré les fichiers précédents
Naveed Ahmad
Puis c'est arrivé à cause de votre erreur. J'ai essayé du code de résidence et je n'ai aucun problème.
Rajesh Maurya
Bro après avoir utilisé la commande ci-dessus dans mon cas a créé un problème pour moi. puis pour résoudre ce problème, je suis resté dans un autre problème.
Naveed Ahmad
0

Si les commandes xattr ne font pas l'affaire, cela peut être dû à un bogue XCode 9: essayons de supprimer et de rajouter le dossier de ressources (c'était un .xcassets dans mon cas) contenant les fichiers affectés de Xcode. (vous devez comprendre quels sont les fichiers affectés précédents via la commande xattr -lr)

Joe Aspara
la source
0

Ouvrez le terminal et exécutez simplement cette commande.

xattr -cr "chemin vers le fichier .app"

Idrees Ashraf
la source
0

Je suis également confronté au même problème, résolu en redémarrant simplement mon Macbook.

Irfan
la source
0

J'ai trouvé que si j'ajoute color tagle dossier sousDerivedData , cela donnera l'erreur ci-dessus lors du débogage sur l'appareil.

Supprimez le color Tagcorrectif de cette erreur pour moi.

entrez la description de l'image ici

JerryZhou
la source
0

Vous pouvez supprimer les données dérivées Xcode -> Preferences

Et cliquez sur la flèche ci Derived Data- dessous et videz le dossierDerived Data

Mickael Belhassen
la source
0

Je ne sais pas ce qui m'est arrivé, mais lorsque j'utilisais l'application flutter sur simulateur, j'ai rencontré l'erreur. J'ai utilisé la flutter cleancommande et supprimé les données dérivées, puis tout se passe bien.

Ankur Lahiry
la source