更新到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.
解决方法如下:
- 找到/[Long-path-goes-here]/all-product-headers(转到文件夹…在Finder中)
- 将内容替换为以下代码
- 保存并锁定文件。(获取文件信息,检查锁定)
{
'version': 0,
'case-sensitive': 'false',
'roots': []
}
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