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

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

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

…每当我从StoreKit导入任何头。 我没有更改这些系统标题,清除派生的数据和通常的清理生成文件夹修复程序也不起作用,也没有重新启动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的伞头

 #import <StoreKit/StoreKit.h> 

到别的东西,但我不能确定什么是别的东西。

有没有其他人遇到过这个问题,希望能find解决的办法?

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

  • closures所有打开的XCode项目。
  • 删除Derived Data文件夹内的所有文件夹。

如何去派生数据文件夹? 只需右键单击产品构build并显示查找程序,浏览文件夹的层次结构并查找派生数据。

希望这可以帮助。 这似乎是在Xcode中的错误? 但不确定。

这为我解决了这个问题:

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

在Xcode中,转到窗口 – >pipe理器 – >项目select您的项目,然后按导出数据旁边的删除button。 只是做了(和它的工作)与以下问题的信息:

致命错误:错误或损坏的AST文件 – Xcode

在你的Project文件夹中会有几个名为Derived Data和build的文件夹。 只要删除这些文件夹,问题就解决了。 一旦你打开你的XCode,这些文件夹就会自动创build。