【问题标题】:Malformed or corrupted AST file格式错误或损坏的 AST 文件
【发布时间】:2013-12-24 23:34:23
【问题描述】:

我有一个问题,我一开始不知道为什么会这样,但很可能是因为我错误地按下了移动到垃圾箱到某些系统框架。

我收到一条错误消息:

格式错误或损坏的 AST 文件:'找不到 AST 文件引用的文件'/Users/username/myProject/QuartzCore.framework/Headers/CAMediaTiming.h''

我尝试在该目录中复制 QuartzCore.framework。然后它给了我一些新的错误。然后,如果我从目录中删除框架。在我进行任何代码更改之前,一切都会对项目有利。然后我将不得不再次制作以前的场景。现在很烦人,我真的需要解决这个问题。有人吗?

【问题讨论】:

  • 终于在这里找到了一个可行的解决方案! stackoverflow.com/a/20215239/2057171
  • 那是...终端此代码的清理和构建...终端命令是:rm -rf /Users/yourusername/Library/Developer/Xcode/DerivedData/ModuleCache/*
  • 不要忘记用您的实际用户名替换该命令中的“您的用户名”... :)
  • 太棒了..我希望你把这个作为答案,以便我可以为你检查..非常感谢
  • 或者只是,rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache/*

标签: ios frameworks malformed


【解决方案1】:

根据要求:

对我来说导致此错误的原因(在获得新的 Xcode 后)是我会尝试在模拟器中运行一个项目(偶然在模拟器中,我从不使用模拟器),但我忘记选择我的设备或我的设备会在我没有注意到的情况下被拔掉,它会尝试在模拟器中运行......所以我会得到那些经典的“.o”文件错误......然后我会切换回我的设备并得到损坏的 AST 文件......


要解决问题...(请严格按照以下步骤操作非常!!!!!)

  1. 清理您的项目
  2. 退出 Xcode (CMD+Q)
  3. 运行此终端命令:
    rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache/*
  4. 运行此终端命令:
    rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/*
  5. 重新打开 Xcode
  6. 确保您选择了您的设备,而不是模拟器
  7. CLEAN 项目(是的,再次
  8. 然后构建(到您的设备,不是模拟器)...

享受吧!

注意:经过进一步的实验,我发现强制退出 xCode 可能没有必要。

【讨论】:

  • 这对我来说从来没有用过。如果“clean”失败,则删除 moduleCache 无效。在多个项目、多个设置中相同。
  • @Adam 对我来说,我必须在删除模块缓存之前清理项目,然后删除模块缓存,然后在删除项目后再次清理项目。如果我在错误保留在 RAM 或其他东西之前和之后没有清理,然后会立即重新写入模块缓存,就像我从未删除它一样。
  • Xcode 长期以来一直存在重大错误,只要 Xcode 正在运行,它就会覆盖硬盘上的数据。我已经清理、退出、删除、重新启动、清理等......没有效果。
  • @Adam 啊!对不起/:祝你好运!这种方法对我有用(而且我只在购买新 Mac 时才收到此错误)!将此添加为书签,并确保在找到解决方案时回来,以便您可以将其编辑到此!祝你好运!
  • 我需要做的就是清理项目并重建。
【解决方案2】:

除了所有其他“清理你的构建”答案之外,在我清空(高度未记录的!)/var/folders 目录之前,没有什么对我有用。

显然,这是 OS-X 维护的“杂项缓存”目录。我什至没有费心去弄清楚什么是“正确的文件”;我刚刚清理了整个目录。

...现在我可以重新构建了。万岁!从终端:

[sudo] rm -rf /var/folders/*

(虽然我是通过身份验证从 Finder 完成的。)(OS-X 10.9.latest)

附加线索:我可以使用 XCode-6-beta 构建,但在 XCode-5 中遇到了愚蠢的“损坏的 AST 文件”错误。

【讨论】:

    【解决方案3】:

    在我的情况下,我需要做的就是单击产品 > 清理,然后再次构建项目。它成功了。希望这可以帮助遇到同样情况的其他人。

    【讨论】:

      【解决方案4】:

      大家好,我遇到了同样的错误,因为我一次打开了两个项目并将框架从一个项目拖放到另一个项目。 一段时间后,我意识到这不是正确的方法。我将所有从另一个项目拖到垃圾箱的框架都移到了垃圾箱。然后清理并在模拟器中运行一切正常。

      删除框架->再次添加框架->清理并运行

      希望对大家有所帮助

      【讨论】:

        【解决方案5】:

        就我个人而言,只有一种解决方案对我有用: 在 Xcode 中转到 Window -> Organizer 单击“派生数据”目录附近的“删除”按钮。 然后再次运行您的项目...

        【讨论】:

        • 这也是唯一对我有用的东西。在删除派生数据之前,我无法分析我的项目,这种方式比尝试出去找到它要容易得多。
        【解决方案6】:

        我只是清理我的项目并重新构建。一切恢复正常。

        【讨论】:

          【解决方案7】:

          在我的情况下,发生错误是因为我有一个损坏的 .m 文件 - 它以某种方式(不太确定如何)进入我的项目(我同时打开了 Eclipse 并且损坏的文件中有一些java代码)。为了解决这个问题,我清理了我的项目,关闭了 Xcode,删除了错误的 .m 文件并重新打开了 Xcode。然后由于现在缺少 .m 文件,它给了我一个 clang 错误。我创建了一个新的空 .m 同名文件,项目运行良好。有点破解,但它有效:-)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-05-06
            • 2012-03-26
            相关资源
            最近更新 更多