web-dev-qa-db-fra.com

Xcode 6 beta 3: fichier de superposition de système de fichiers virtuel non valide

Après la mise à jour vers Xcode 6 beta 3, le compilateur continue de planter avec l'erreur suivante:

/[Long-path-goes-here]/all-product-headers.yaml:4:13: error: Could not find closing ]!
  'roots': [
            ^
fatal error: invalid virtual filesystem overlay file '/[Long-path-goes-here]/all-product-headers.yaml'
1 error generated.
29
Daniel Schlaug

Résolu en procédant comme suit:

  1. Trouvez le fichier /[Long-path-goes-here]/all-product-headers.yaml (Aller au dossier ... dans le Finder)
  2. Remplacez le contenu par le code ci-dessous.
  3. Enregistrez et verrouillez le fichier. (Obtenir des informations sur le fichier, cocher verrouillé.)

{ 'version': 0, 'case-sensitive': 'false', 'roots': [] }

Après cela, Xcode se plaindra de ne pas être en mesure d'écrire le fichier avec cette erreur, cela est prévu et ne semble pas affecter la construction. Edit: Pour la plupart des gens. Si cela vous empêche de fonctionner, essayez de désactiver Defines Module dans Build Settings de votre cible:

Unable to write to file /Users/user/Library/Developer/Xcode/DerivedData/.. (You don’t have permission to save the file “all-product-headers.yaml” in the folder “Pods.build”.) 

Chapeau à la discussion sur les forums de développeurs Apple . En outre, ceci est la question pertinente dans le suivi des problèmes CocoaPods.

38
Daniel Schlaug

Essayez de définir "Defines Module = YES" dans la cible de votre application. Fonctionne pour mon projet.

13
jpsim

Nettoyer (commande-shift-K) et nettoyer-construire-dossier (commande-alt-shift-K) et construire à nouveau a fonctionné pour moi.

11
Daniel

J'ai eu ce problème parce que j'ai supprimé d'anciennes archives et fichiers de mon mac pour libérer de l'espace. Cependant, l'installation du pod pour ce projet l'a résolu.

5
Juan Pablo

Peut-être que votre chemin vers le fichier .yaml contient le caractère '. Cela rend l'analyseur confus. En utilisant TextWrangler, vous pouvez voir que votre chemin a différentes couleurs (rouge et noir).

C'est mon cas, et le déplacement du projet vers un autre chemin (qui ne contient pas ') a résolu mon problème.

3
samthui7

Je l'ai résolu en supprimant le dossier DerivedData du projet actuel par (Xcode 8):

Xcode> Preferences> Locations tab> Cliquez sur la flèche vers la droite située sous DerivedData> dans le dossier DerivedData, supprimez le dossier du projet . Il est préférable de nettoyer en profondeur également avec Shift+Cmd+Alt+K.

2
Asi Givati

Peut réparer avec une commande Shell:

echo "{\n\t'version': 0,\n\t'case-sensitive': 'false',\n\t'roots': []\n}" > /[Long-path-goes-here]/all-product-headers.yaml

Où le chemin est copié en dehors de l'erreur Xcode.

Voir la réponse de Daniel Schlaug pour plus d'informations

1
josh-fuggle

J'ai essayé toutes les réponses ci-dessus/ci-dessous. Aucun n'a travaillé. 

Cependant, le redémarrage de Xcode l’a fait. 

Essayez cela avant d'entrer dans la folie d'essayer de corriger la situation actuelle du fichier manquant. Tout le reste est de la folie. Heck, si cela ne résout pas le problème. Je voudrais même essayer de redémarrer chaque fois que vous faites l'une des stratégies énumérées ici. Peut-être que l'un de ceux-ci le corrigera mais Xcode restera bloqué jusqu'à ce que vous le redémarriez. 

Rien d’autre à faire, Xcode est parfois trop bogué.

0
Dan1one

Je reçois cette erreur trop souvent et j'ai donc créé un script bash simple, basé sur la réponse de Daniel Schlaug. Je n'ai jamais eu besoin de verrouiller le fichier. Copiez simplement le fichier référencé dans votre journal des erreurs et utilisez-le comme seul paramètre. N'oubliez pas de chmod +ux avant de lancer.

#!/bin/bash

if [ "$#" -eq "0" ]
then
   echo "No arguments supplied"
   exit
fi

rm -rf $1
echo "
{
  'version': 0,
   'case-sensitive': 'false',
   'roots': []
 }" > $1
0
arsenius