web-dev-qa-db-de.com

Xcode 6 beta 3: Ungültige Datei für ein virtuelles Dateisystem

Nach dem Update auf Xcode 6 Beta 3 stürzt der Compiler mit dem folgenden Fehler ab:

/[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

Gelöst, indem Sie Folgendes tun:

  1. Suchen Sie nach dem /[Long-path-goes-here hier/all-product-headers.yaml (Gehe zum Ordner ... im Finder)
  2. Ersetzen Sie den Inhalt durch den folgenden Code.
  3. Speichern und sperren Sie die Datei. (Informationen zur Datei abrufen, gesperrt überprüfen.)

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

Nachdem dies Xcode sich beschwert hat darüber, dass die Datei mit diesem Fehler nicht geschrieben werden kann, wird dies erwartet und scheint den Build nicht zu beeinflussen. Bearbeiten: Für die meisten Leute. Wenn Sie die Ausführung verhindern, deaktivieren Sie Defines Module in Build Settings Ihres Ziels:

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”.) 

Zum Diskussion in Apple Developer-Foren . Dieses ist das relevante Problem in CocoaPods Issue Tracker.

38
Daniel Schlaug

Versuchen Sie, in Ihrem App-Ziel "Defines Module = YES" einzustellen. Funktioniert für mein Projekt.

13
jpsim

Clean (Befehl-Shift-K) und Clean-Build-Ordner (Befehl-Alt-Shift-K) und Build funktionierte wieder für mich.

11
Daniel

Ich hatte dieses Problem, weil ich einige alte Archive und Dateien von meinem Mac gelöscht habe, um mehr Platz zu schaffen. Durch die laufende Installation des Pods für dieses Projekt wurde das Problem jedoch gelöst.

5
Juan Pablo

Möglicherweise enthält Ihr Pfad zur .yaml-Datei '-Zeichen. Der Parser wird dadurch verwirrt. Mit TextWrangler können Sie sehen, dass Ihr Pfad unterschiedliche Farben hat (rot und schwarz).

Das ist mein Fall und das Verschieben eines Projekts in einen anderen Pfad (der ' nicht enthält) löste mein Problem.

3
samthui7

Ich löste es, indem ich den Ordner DerivedData des aktuellen Projekts durch (Xcode 8) lösche:

Xcode> Preferences> Locations tab> Klicken Sie im Ordner DerivedData auf den Rechtspfeil unter DerivedData>. Löschen Sie den Projektordner. Besser auch mit Shift+Cmd+Alt+K. hart reinigen .

2
Asi Givati

Kann mit einem Shell-Befehl korrigiert werden:

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

Wo der Pfad aus dem Xcode-Fehler kopiert wird.

Weitere Informationen finden Sie in der Antwort von Daniel Schlaug

1
josh-fuggle

Ich habe alle Antworten oben/unten ausprobiert. Keiner hat gearbeitet. 

Durch den Neustart von Xcode wurde dies jedoch getan. 

Versuchen Sie das, bevor Sie in den Wahnsinn gehen, zu versuchen, die tatsächliche Situation der fehlenden Datei zu korrigieren. Der Rest ist Wahnsinn. Heck, wenn das nicht klappt. Ich würde sogar jedes Mal einen Neustart durchführen, wenn Sie eine der hier aufgeführten Strategien ausführen. Vielleicht ist einer dieser Fehler behoben, aber Xcode bleibt hängen, bis Sie ihn erneut starten. 

Nichts anderes zu tun, Xcode ist manchmal einfach zu fehlerhaft.

0
Dan1one

Ich bekomme diesen Fehler zu häufig, deshalb habe ich ein einfaches Bash-Skript erstellt, das auf der Antwort von Daniel Schlaug basiert. Ich habe die Datei noch nie gesperrt. Kopieren Sie einfach die in Ihrem Fehlerprotokoll referenzierte Datei und verwenden Sie sie als einzigen Parameter. Vergessen Sie nicht, chmod +ux vor dem Ausführen zu starten.

#!/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