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中的错误? 但不确定。
这为我解决了这个问题:
- 去项目build设设置
- 向下滚动到LLVM 5.1语言模块
- 将启用模块(C和Obj C)设置为NO
在Xcode中,转到窗口 – >pipe理器 – >项目select您的项目,然后按导出数据旁边的删除button。 只是做了(和它的工作)与以下问题的信息:
致命错误:错误或损坏的AST文件 – Xcode
在你的Project文件夹中会有几个名为Derived Data和build的文件夹。 只要删除这些文件夹,问题就解决了。 一旦你打开你的XCode,这些文件夹就会自动创build。