Xcode 6 beta 3:无效的虚拟文件系统覆盖文件

时间:2014-07-08 02:08:36

标签: xcode xcode6

更新到Xcode 6 beta 3后,编译器会因以下错误而崩溃:

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

9 个答案:

答案 0 :(得分:38)

通过执行以下操作解决:

  1. 找到/[Long-path-goes-here]/all-product-headers.yaml(转到文件夹中的文件夹...)
  2. 使用以下代码替换内容。
  3. 保存并锁定文件。 (获取文件信息,检查锁定。)
  4. { 'version': 0, 'case-sensitive': 'false', 'roots': [] }

    Xcode会抱怨关于无法使用此错误编写文件,这是预期的,似乎不会影响构建。 编辑对大多数人来说。如果它阻止您运行,请尝试停用目标Defines Module中的Build Settings

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

    加入discussion on Apple Developer forums。此外,CocoaPods中的is the relevant issue问题跟踪器。

答案 1 :(得分:14)

尝试在应用目标中设置“定义模块=是”。适用于我的项目。

答案 2 :(得分:11)

Clean(命令移位-K)和clean-build-folder(命令-alt-shift-K)和build再次为我工作。

答案 3 :(得分:5)

我遇到了这个问题,因为我从mac中删除了一些旧的档案和文件,以腾出更多空间。但是,为此项目运行pod安装解决了它。

答案 4 :(得分:3)

。您的.yaml文件路径可能包含'个字符。它使解析器感到困惑。使用TextWrangler,您可以看到您的路径有不同的颜色(红色和黑色)。

这是我的理由,将项目移动到另一条路径(不包含')解决了我的问题。

答案 5 :(得分:2)

我通过删除当前项目的DerivedData文件夹(Xcode 8)来解决它:

Xcode> Preferences> Locations标签>单击右下方的箭头 DerivedData>在文件夹DerivedData内删除项目文件夹。 最好通过Shift+Cmd+Alt+K进行硬清洁。 并建立。

答案 6 :(得分:1)

可以使用一个shell命令修复:

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

将路径复制出Xcode错误。

请参阅Daniel Schlaug的背景信息答案

答案 7 :(得分:0)

我经常收到此错误,因此我根据Daniel Schlaug的回答制作了一个简单的bash脚本。我从来不需要锁定文件。只需复制错误日志中引用的文件,并将其用作唯一参数。在跑步之前不要忘记chmod +ux

#!/bin/bash

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

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

答案 8 :(得分:0)

我尝试了上面/下面的所有答案。没有用。

然而,重启Xcode做到了。

在尝试修复丢失文件的实际情况之前尝试一下。其余的都是疯狂的。哎呀,如果那还没有解决的话。我甚至会在每次执行此处列出的策略之一时尝试重新启动。也许其中一个修复了它,但Xcode被卡住,直到你重新启动它。

没有别的事情可做,Xcode有时太麻烦了。