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

Posted

技术标签:

【中文标题】Xcode 5 错误:“格式错误或损坏的 AST 文件:子模块中的伞头不匹配”【英文标题】:Xcode 5 error: "Malformed or corrupted AST file: mismatched umbrella header in submodule" 【发布时间】:2013-12-15 16:36:48 【问题描述】:

将 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>

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

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

【问题讨论】:

按照***.com/questions/5544985/…>中的指示,我能够稍微神秘地解决它: 1. 转到构建设置 2. 搜索“框架搜索路径” 3. 并删除预填充的路径. 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

这为我解决了:

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

【讨论】:

大声笑!这有点血腥,但它确实有效……该模块是一个新的 LLVm 功能,可以减少构建时间。至少,当它不会阻止构建成功时! 只是补充一点,在我的情况下,问题只发生在我的单元测试目标上,所以我只是禁用了这个特定目标的模块......直到我找到更好的解决方案。 :-/ 谢谢!【参考方案3】:

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

fatal error: malformed or corrupted AST file - Xcode

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于Xcode 5 错误:“格式错误或损坏的 AST 文件:子模块中的伞头不匹配”的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 构建失败并出现“致命错误:格式错误或损坏的 AST 文件”Crashlytics.h

将 Xcode 从 5.0 更新到 5.1 后生成错误

Xcode 5.1 - iOS 7.1 错误

Xcode 5.0.2 错误:无法在 Xcode 中启动问题 [关闭]

XCode 5 中的错误接收器类型“无效”错误

pjsip链接错误Xcode 5