【问题标题】:Xcode 6 beta 3: invalid virtual filesystem overlay fileXcode 6 beta 3:无效的虚拟文件系统覆盖文件
【发布时间】:2014-08-28 15:32:03
【问题描述】:

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

【问题讨论】:

    标签: xcode xcode6


    【解决方案1】:

    通过以下方式解决:

    1. 找到 /[Long-path-goes-here]/all-product-headers.yaml(在 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”.) 
    

    discussion on Apple Developer forums 致敬。此外,CocoaPods 问题跟踪器中的这个 is the relevant issue

    【讨论】:

    • xcode 显示此错误:无法写入文件 /Users/user/Library/Developer/Xcode/DerivedData/..(您无权保存文件“all-product-headers .yaml”在“Pods.build”文件夹中。)
    • 这是意料之中的。无论如何,构建都应该运行。
    • 它影响了我的构建(由于错误,我无法完成构建)。我刚刚将“构建设置”中的“定义模块”设置为“否”(使用 Apple 开发者论坛中的回复),它现在正在工作。
    • 不知道那里发生了什么。我正在做 Swift 的东西,所以我需要所有东西来定义模块,而且无论如何它都对我有用。为不在 swift 上的任何人添加了该修复程序。
    • 是的。我也需要它。在清理项目或向 briging.h 文件添加另一个导入后,又遇到了另一个无意义的错误。
    【解决方案2】:

    尝试在您的应用目标中设置“Defines Module = YES”。适用于我的项目。

    【讨论】:

    • 对我来说非常好用,我只需要在 Cocoapods 项目上设置它,因为我正在使用它。
    • 我使用 cocoapods [cocoapods.org] 并得到了同样的错误。但是在 Pods 项目中设置“Define Modules = YES”后效果很好
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          可以用一个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】:

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

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

            【讨论】:

              【解决方案8】:

              我太频繁地收到此错误,因此我根据 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
              

              【讨论】:

                【解决方案9】:

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

                然而,重启 Xcode 做到了。

                在尝试修复丢失文件的实际情况之前尝试一下。其余的都是疯狂。哎呀,如果这不能解决它。每次您执行此处列出的策略之一时,我什至会尝试重新启动。也许其中之一可以修复它,但 Xcode 会卡住,直到您重新启动它。

                没有别的事可做,Xcode 有时实在是太麻烦了。

                【讨论】:

                  猜你喜欢
                  • 2015-11-29
                  • 1970-01-01
                  • 2016-09-28
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-04-28
                  相关资源
                  最近更新 更多