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



更新到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.

解决方法如下:

  1. 找到/[Long-path-goes-here]/all-product-headers(转到文件夹…在Finder中)
  2. 将内容替换为以下代码
  3. 保存并锁定文件。(获取文件信息,检查锁定)

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

在这个之后,Xcode将抱怨关于不能写这个错误的文件,这是预期的,似乎不影响构建。编辑:对于大多数人来说。如果它阻止您运行,请在目标的Build Settings中禁用Defines Module:
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”.) 

向苹果开发者论坛的讨论致敬。此外,这是CocoaPods问题跟踪器中的相关问题。

尝试在你的应用目标中设置" definitions Module = YES"。

清理(command-shift-K)和清理构建文件夹(command-alt-shift-K)并再次构建对我来说很有效。

我有这个问题,因为我从我的mac删除了一些旧的档案和文件,以腾出更多的空间。然而,运行pod安装这个项目解决了这个问题。

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

这就是我的情况,并将项目移动到另一个路径(不包含')解决了我的问题。

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

Xcode> Preferences> Locations选项卡>单击下方的右箭头DerivedData>在DerivedData文件夹下删除工程文件夹。最好做硬清洁也由Shift+Cmd+Alt+K。和构建。

可以用一个shell命令修复:

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

这里的路径是从Xcode错误中复制出来的。

背景信息请参见Daniel Schlaug的回答

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

然而,重新启动Xcode做到了。

在疯狂地试图修复丢失文件的实际情况之前,请先尝试一下。其余的都是疯狂。见鬼,如果这还不能解决问题。我甚至会尝试重新开始,每次你做这里列出的策略之一。也许其中一个可以修复它,但Xcode会卡住,直到你重启它。

别无他法,Xcode有时bug太多

我经常遇到这个错误,所以我根据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

相关内容

  • 没有找到相关文章

最新更新