Xcode 5错误:“格式错误或损坏的AST文件:子模块中不匹配的伞头”

时间:2013-12-15 16:36:49

标签: ios xcode5

将StoreKit添加到我的Xcode 5项目后,我现在看到......

“AST文件格式错误或损坏:子模块中的伞形标题不匹配”

...每当我从StoreKit导入任何标头时。我没有更改这些系统头,清除派生数据和通常的Clean Build Folder修复也不起作用,重启Xcode也没有改变任何东西。

我在Clang来源中看到报告错误,但我不知道为什么。以下是来自http://clang.llvm.org/doxygen/ASTReader_8cpp_source.html的相关Clang代码:

case SUBMODULE_UMBRELLA_HEADER: {
03728       if (First) {
03729         Error("missing submodule metadata record at beginning of block");
03730         return true;
03731       }
03732 
03733       if (!CurrentModule)
03734         break;
03735       
03736       if (const FileEntry *Umbrella = PP.getFileManager().getFile(Blob)) {
03737         if (!CurrentModule->getUmbrellaHeader())
03738           ModMap.setUmbrellaHeader(CurrentModule, Umbrella);
03739         else if (CurrentModule->getUmbrellaHeader() != Umbrella) {
03740          Error("mismatched umbrella headers in submodule");
03741           return true;
03742         }
03743       }
03744       break;
03745     }

显然我比较了我导入的伞形标题

#import <StoreKit/StoreKit.h>

其他东西,但我无法确定其他东西是什么。

有没有其他人遇到过这个,希望找到解决方法?

4 个答案:

答案 0 :(得分:4)

我能够遇到这个问题,遵循上面提到的方向对我来说不起作用。通过执行以下操作,我能够解决此问题:

  • 关闭所有打开的XCode项目。
  • 删除Derived Data文件夹中的所有文件夹。

如何转到Derived Data文件夹?只需右键单击您的产品构建和显示查找器,浏览文件夹层次结构并查找派生数据。

希望这会有所帮助。这似乎是Xcode中的一个错误?但不确定。

答案 1 :(得分:4)

这解决了我:

  1. 转到项目构建设置
  2. 向下滚动到LLVM 5.1语言模块
  3. 将启用模块(C和Obj C)设置为NO

答案 2 :(得分:3)

在Xcode中,转到Window-&gt; Organizer-&gt; Projects选择您的项目,然后按Derived data旁边的删除按钮。只是做了(并且它有效)信息以下问题:

fatal error: malformed or corrupted AST file - Xcode

答案 3 :(得分:-2)

在Project文件夹中,会有几个名为Derived Data和build的文件夹。只需删除这些文件夹即可解决问题。打开XCode后会自动创建这些文件夹。