2013-12-15 26 views
3

加入StoreKit到我的Xcode 5項目後,我看現在......的Xcode 5錯誤:「格式不正確或損壞AST文件:在子模塊不匹配的傘頭」

「格式不正確或損壞AST文件:不匹配的傘頭在子模塊「

...每當我從StoreKit導入任何頭。我沒有更改這些系統標題,並且清除派生數據和通常的Clean Build Folder修復程序也不起作用,重新啓動Xcode也不會改變任何內容。

我在Clang中看到錯誤報告的來源,但我不知道爲什麼。下面是從http://clang.llvm.org/doxygen/ASTReader_8cpp_source.html相關鏘代碼:

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> 

別的東西,但我不能確定的是別的東西是什麼。

有沒有其他人遇到過這種情況,並希望找到解決方法?

+1

我能夠通過遵循中的方向來神祕地解決它:1.轉到構建設置 2.搜索'框架搜索路徑' 3.並刪除預先填充的路徑。 –

回答

4

我能夠遇到這個問題,遵循上面John提到的方向對我不起作用。我能夠通過執行以下操作來解決此問題:

  • 關閉所有打開的XCode項目。
  • 刪除Derived Data文件夾內的所有文件夾。

如何去派生數據文件夾?只需右鍵單擊您的產品構建並顯示查找程序,瀏覽文件夾的層次結構並查找派生數據。

希望這會有所幫助。這似乎是Xcode中的一個錯誤?但不確定。

4

這解決了這個問題對我來說:

  1. 轉到項目生成設置
  2. 向下滾動到LLVM 5.1語言模塊
  3. 設置啓用模塊(C和Obj C)爲否
+0

LoL!這是一種血腥,但它的工作原理......該模塊是一種新的LLVm功能,可縮短構建時間。至少,它不妨礙構建成功! – MonsieurDart

+0

只是爲了補充一點,在我的情況下,問題只發生在我的單元測試目標上,所以我只是禁用了這個特定目標的模塊......直到我找到了更好的解決方案。 :-/ 謝謝! – MonsieurDart

-2

In您的Project文件夾中會有幾個名爲Derived Data和build的文件夾。只要刪除這些文件夾,問題就會解決。這些文件夾會在您打開XCode後自動創建。

相關問題