web-dev-qa-db-fra.com

Erreur de signature de code dans macOS High Sierra Xcode

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

S'il vous plaît voir l'image montrant une erreur  enter image description here

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 un profil et un certificat ... tout en donnant une erreur .  enter image description here

 enter image description here

Comment résoudre ce problème ?

214
iPhoneProcessor

Solution 1:

Site Web du développeur Apple Réponses au problème ci-dessus Ici .

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

 xattr -cr <path_to_app_bundle>

Nettoyer Xcode et Re Build. À votre santé

Solution 2:

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

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

ls -alR@ . > kundapura.txt

Cela crée kundapura.txt dans le répertoire actuel. Maintenant, recherchez com.Apple.FinderInfo et effacez ces attributs pour tous les fichiers. Tu peux le faire comme ça

xattr -c <filename>

Exemple: xattr -c guru.png

Une fois que vous avez tout effacé, le code fonctionne. Nettoyer Xcode et Re Build. À votre santé

Solution 3: Inspiré par la réponse de Mark McCorkle

Dans terminal, allez dans le répertoire racine du projet et exécutez les commandes une à 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 {} \;

Nettoyer Xcode et Re Build. Terminé.

468
Guru

L'erreur provient d'attributs à l'intérieur de vos fichiers image. Notre graphiste a enregistré cela en enregistrant des images de Photoshop avec des attributs.

Voici une commande simple pour trouver tous vos fichiers png et supprimer leurs attributs. Exécutez ceci 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 {} \;
145
Mark McCorkle

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

ressource, 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-le.

find . | xargs -0 xattr -c

Cela effacera les attributs pour tous les fichiers.

En Sierra, les règles sur ce qui peut être dans un paquet signé ont été resserrées et les fourchettes de ressources ne sont plus autorisées. AppleScript enregistre les informations dans les fourchettes de ressources depuis toujours, même si ces informations sont inutilisées depuis longtemps. Avec Sierra, lorsque vous enregistrez un script, les informations de cette fourchette de ressources ne sont plus enregistrées.

Cela signifie que vous ne pouvez pas coder le dernier script sauvegardé dans une version antérieure à Sierra; vous devez enregistrer dans Sierra pour pouvoir signer dans Sierra.

Les personnes susceptibles d'être affectées par sont ceux qui intègrent d'autres scripts dans leurs scripts (Cordova?). Ils ne seront pas en mesure de signer le script de conteneur tant que tous les scripts incorporés n'auront pas été sauvegardés sous Sierra.

METTRE À JOUR:

On dirait que cela fonctionne aussi:

xattr -rc .

Si vous rencontrez des erreurs d’autorisations insuffisantes, essayez d’ajouter du code Sudo à: Sudo xattr -rc .

80
Arnold Roa

Il existe une réponse officielle de Apple à ce problème dans Questions techniques QA1940 .

Il s'agit d'un changement de renforcement de la sécurité 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 sur le 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 lot 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

21
comrade

Le moyen le plus simple de gérer les attributs sur vos fichiers source consiste à faire en sorte que Xcode efface 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électionnez la nouvelle phase de script d'exécution
  5. Entrez les éléments suivants pour le script:

    xattr -cr ~/Bibliothèque/Développeur/Xcode/DerivedData || echo Clear

Désormais, lorsque vous construisez votre cible, tous les attributs qui auraient pu être codés sont supprimés. En effaçant à ce stade, vous n'avez pas à modifier votre répertoire de code source/projet.

La partie "|| echo Clear" du script garantit la poursuite de la construction du projet, même en cas d'erreur xattr.

Cette méthode est utile si vous utilisez des programmes tels que DropBox dans votre référentiel de code qui ajoutent les attributs, car cela ne modifie pas votre projet source, mais uniquement l'archive construite.

Vous devrez peut-être modifier le chemin pour qu'il corresponde à votre répertoire DerivedData. Ce chemin s'affichera à côté de l'erreur codesign.

 xattr codesign xcode fix

16
A.Badger

Tout ce qui concerne l'effacement des fichiers est correct, mais fastidieux pour plusieurs projets.

les applications graphiques (comme Photoshop dans les anciennes versions) écrivent des informations supplémentaires (nous les appelons maintenant métadonnées ..) de manière ancienne dans des fichiers externes, ou bien elles sont venues d’OSX plus anciens, des fichiers tels que:

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

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

J'ai écrit un petit utilitaire gratuit pour le supprimer .. espérons qu'il peut aider ..

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

15
ingconti

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

xattr -rc .
13
Ram G.

Solution simple: -

Comment j'ai fait [Travailler pour moi]

Étape 1: -.__ Allez dans ce dossier - depuis votre Finder, appuyez sur l'option Aller -> Aller au dossier

puis tapez votre chemin de projet comme ceci exemple: - Bibliothèque/Développeur/Xcode/DerivedData/votre nom de projet/Build/Products/Debug-iphoneos

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

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

Étape 3: - Maintenant, tapez cette commande **

xattr -rc.

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

Voilà, accédez à votre projet Xcode, nettoyez-le et exécutez-le à nouveau. 

10
Abdu

Pour ceux (comme moi) qui essaient simplement de développer une application sans supprimer les attributs étendus de chaque nouveau PNG créé par Photoshop créé dans 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 

Évidemment, une application distribuant 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 (sous 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 génération personnalisé est ajouté. 

 enter image description here

 enter image description here

10
Bobjt

----- Dans le cas où vous ne pouvez pas appliquer les solutions ci-dessus, à cause du 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 se trouvait dans un dossier 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 contenant votre projet.

8
Fawkes

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

Mon application s'appelle: augment

Dans la fenêtre du terminal, accédez au dossier de votre application Par exemple: cd/Utilisateurs/nom d'utilisateur/Bibliothèque/Développeur/Xcode/DerivedData /

Dans la fenêtre du terminal, exécutez la commande correspondant au dossier de votre application .__, par exemple: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Nettoyer> Construire> Exécuter.

Il existe également une application gratuite sur Mac Appstore appelée "CleanDetritus" qui permettra de les supprimer.

4
velhala

Ce problème est venu à moi hier.

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

(What's right) Ne mettez pas à jour l'image de cette façon. Après cela, j'ai fait glisser les images sur "xcassets" dans Xcode. Aucune autre erreur n'apparaît à nouveau.

2
ManuQiao

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. S'il vous plaît vérifier this link.

2
Yogesh Dalavi

Mon problème est chaque changement que je fais dans le code et exécute encore 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-capable, j'ai découvert "Run Script". Puis je mets la commande "xattr -cr." Sur le terrain.

 XCODE Solution

1
Andrey

Le correctif le plus simple peut être si vous utilisez git . Essayer:

$ git stash
$ git stash pop

Git ne stocke pas les métadonnées de fichier, ce qui précède va tout effacer.

1
emp

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

0
Irfan

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

0
Frederik Witte

Si les commandes xattr ne vous conviennent pas, cela est peut-être dû à un bogue de XCode 9: (vous devez comprendre quels sont les fichiers affectés précédents par le biais de la commande xattr -lr)

0
Joe Aspara

Une des meilleures solutions est Aller au type de terminal this

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 . Puis tapez la commande ci-dessous 

xattr -cr "Full path of your project"

Nettoyer et construire fait.

0
Rajesh

Ouvrez le terminal et lancez cette commande.

xattr -cr "chemin d'accès au fichier .app"

0
Idrees Ashraf

J'ai trouvé que si j'ajoute color tag sur le dossier sous DerivedData, il donnera l'erreur ci-dessus lors du débogage sur le périphérique.

Supprimez le color Tag corrigez cette erreur pour moi.

 enter image description here

0
JerryZhou