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.
Gelöst, indem Sie Folgendes tun:
{
'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.
Versuchen Sie, in Ihrem App-Ziel "Defines Module = YES" einzustellen. Funktioniert für mein Projekt.
Clean (Befehl-Shift-K) und Clean-Build-Ordner (Befehl-Alt-Shift-K) und Build funktionierte wieder für mich.
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.
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.
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 .
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
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.
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