45 votes

Xcode 8 ne peut pas archiver "La commande /usr/bin/codesign a échoué avec le code de sortie 1".

J'ai un sérieux problème avec Xcode 8 sur macOS Sierra. Lorsque j'essaie de construire mon application, j'obtiens le problème suivant.

CodeSign /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp.app
cd /Users/me/Desktop/MyAppFolder1/MyAppFolder2/MyAppxcode
export CODESIGN_ALLOCATE=/Users/me/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Users/me/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Users/me/Downloads/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "-"

/usr/bin/codesign --force --sign - --timestamp=none /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp.app

/Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

alors j'ai fait https://forums.developer.apple.com/thread/48905 dans le terminal comme suit et ça a marché. Mais une fois que j'ai nettoyé, le problème revient.

cd /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Products/Debug-iphonesimulator/MyApp

ls -al@ *

xattr -c *

et cette solution ne fonctionne pas pour les archives avec le problème suivant. y a-t-il une solution pour cela ?

CodeSign /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app
cd /Users/me/Desktop/MyAppFolder1/MyAppFolder2/MyAppxcode
export CODESIGN_ALLOCATE=/Users/me/Downloads/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Users/me/Downloads/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Users/me/Downloads/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Developer: My Name (**********)"
Provisioning Profile: "iOS Team Provisioning Profile: com.**********.*********"
                  (********-****-****-****-************)

/usr/bin/codesign --force --sign **************************************** --entitlements /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/IntermediateBuildFilesPath/MyApp.build/Release-iphoneos/MyApp.build/MyApp.app.xcent --timestamp=none /Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app

/Users/me/Library/Developer/Xcode/DerivedData/MyApp-gnoiiwnelmxzdidnijaswisrwdqe/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

109voto

DevManny Points 1260

J'ai trouvé cette solution dans le forum Apple

cd ~/Library/Developer/Xcode/DerivedData
xattr -rc .

ou

xattr -rc ~/Library/Developer/Xcode/DerivedData

21voto

Sunil aruru Points 247

Solution 1 :

Vous pouvez essayer la commande bash spécifique au fichier comme Mark McCorkle l'a répondu.

Dans le terminal, allez dans le répertoire racine du projet et exécutez une par une les commandes suivantes

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

Nettoyer Xcode et recompiler. C'est fait.

Solution 2 :

Vous pouvez résoudre ce problème en trouvant les fichiers qui contiennent les informations du finder.

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

ls -alR@ . > kundapura.txt

Cela crée kundapura.txt dans le répertoire actuel. Maintenant, cherchez com.apple.FinderInfo et effacez cet attribut pour tous les fichiers. Vous pouvez le faire comme ceci

xattr -c <filename>
Example: xattr -c guru.png

Une fois que vous avez tout effacé, vous êtes en mesure de signer le code. Salutations

12voto

Janky Points 407

Pour moi, ça a marché :

cd ~/Library/Developer/Xcode/DerivedData
xattr -dr com.apple.FinderInfo *

Et ensuite reconstruire

9voto

raeldor Points 90

Il existe une solution plus permanente à ce problème. La correction des attributs dans les DerivedData fonctionne, mais le problème revient sans cesse. Ce que vous devez faire est d'aller dans le répertoire affiché lorsque vous obtenez le message "resource fork, Finder information, or similar detritus not allowed", celui qui contient le fichier .App. Ensuite, exécutez...

xattr -lr MonNomApp.App

Vous pouvez alors voir les fichiers de ressources qui ont les attributs à supprimer. Ne les supprimez pas du fichier .App, trouvez les fichiers originaux dans votre projet, ouvrez le répertoire qui les contient et exécutez...

xattr -rc .

Cela corrige ensuite les fichiers ORIGINAUX. La reconstruction devrait alors fonctionner correctement. Il devrait aussi reconstruire correctement pour les archives.

6voto

Can Poyrazoğlu Points 4951

Cela est dû au fait que certains fichiers de ressources ont des attributs supplémentaires sur le système de fichiers, probablement à cause de macOS Sierra (car j'ai commencé à avoir ce problème après la mise à niveau vers macOS Sierra).

Essayez d'exécuter xattr -c * dans l'ensemble DerivedData (comme indiqué par la réponse dans https://forums.developer.apple.com/message/178039#178039 ):

cd ~/Library/Developer/Xcode/DerivedData
xattr -c *

La suppression des attributs uniquement sur le dossier de construction a réglé le problème pour moi lors du débogage. La suppression des attributs sur l'ensemble du DerivedData Le dossier l'a réparé pour moi dans l'archivage aussi. Veuillez noter que cela peut entraîner d'autres conséquences (bien que très improbables), mais vous pouvez toujours supprimer le dossier DerivedData et il sera régénéré, au cas où quelque chose serait cassé.

Aussi, si cela échoue toujours, nettoyez le projet ( no le dossier de construction) après avoir exécuté la commande est une bonne idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X