如何解决“Xcode在使用libclang.dylib插件时意外退出”?

我在开始xCode( 5.1.1 )之后的每一段时间都有这个。

删除用户数据,closures源代码pipe理(如一些postbuild议),没有效果,仍然崩溃(显示索引…,永远不会完成)。 即使重新安装 xCode,没有任何影响,仍然是这样说的。

有没有人修复这样的xCode?

在这里输入图像说明

这是崩溃的线程:

  Thread 7 Crashed:: Dispatch queue: IDEIndex PCH Creation Lock 0 libclang.dylib 0x00000001080c60d9 void llvm::BitstreamWriter::EmitRecordWithAbbrevImpl<unsigned long long>(unsigned int, llvm::SmallVectorImpl<unsigned long long>&, llvm::StringRef) + 809 1 libclang.dylib 0x00000001080c5867 void llvm::BitstreamWriter::EmitRecord<unsigned long long>(unsigned int, llvm::SmallVectorImpl<unsigned long long>&, unsigned int) + 71 2 libclang.dylib 0x00000001081e9f25 clang::ASTWriter::WriteASTCore(clang::Sema&, llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, clang::Module*) + 35045 3 libclang.dylib 0x00000001081e160e clang::ASTWriter::WriteAST(clang::Sema&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, clang::Module*, llvm::StringRef, bool) + 6830 4 libclang.dylib 0x00000001080719a3 clang::ASTUnit::Save(llvm::StringRef) + 691 5 libclang.dylib 0x0000000107fe974f clang_saveTranslationUnit + 543 6 com.apple.dt.IDEFoundation 0x0000000106ac63af -[IDEIndexClangTranslationUnit cxTranslationUnit] + 331 7 com.apple.dt.IDEFoundation 0x0000000106c2c11a +[IDEIndexClangDataSource translationUnitForPCHFile:arguments:session:create:] + 259 8 com.apple.dt.IDEFoundation 0x0000000106cf5552 __90-[IDEIndex createPCHFile:arguments:hashCriteria:target:session:willIndex:translationUnit:]_block_invoke + 1739 9 libdispatch.dylib 0x00007fff957012ad _dispatch_client_callout + 8 10 libdispatch.dylib 0x00007fff95702166 _dispatch_barrier_sync_f_invoke + 39 11 com.apple.dt.DVTFoundation 0x0000000105fce5cf -[DVTDispatchLock performLockedBlock:] + 95 12 com.apple.dt.IDEFoundation 0x0000000106cf4932 -[IDEIndex createPCHFile:arguments:hashCriteria:target:session:willIndex:translationUnit:] + 919 13 com.apple.dt.IDEFoundation 0x0000000106ac4985 -[IDEIndexClangDataSource generateDataForJob:] + 1274 14 com.apple.dt.IDEFoundation 0x0000000106ac42fb -[IDEIndexDataSource processJob:] + 147 15 com.apple.dt.IDEFoundation 0x0000000106ac3e33 +[IDEIndexingEngine runFileJob:] + 732 16 com.apple.dt.IDEFoundation 0x0000000106ac3550 -[IDEIndexingJob run] + 161 17 com.apple.dt.IDEFoundation 0x0000000106c3233c __40-[IDEIndexingJobScheduler _scheduleJobs]_block_invoke + 33 18 libdispatch.dylib 0x00007fff957041d7 _dispatch_call_block_and_release + 12 19 libdispatch.dylib 0x00007fff957012ad _dispatch_client_callout + 8 20 libdispatch.dylib 0x00007fff9570309e _dispatch_root_queue_drain + 326 21 libdispatch.dylib 0x00007fff95704193 _dispatch_worker_thread2 + 40 22 libsystem_pthread.dylib 0x00007fff8ead7ef8 _pthread_wqthread + 314 23 libsystem_pthread.dylib 0x00007fff8eadafb9 start_wqthread + 13 

或者您可以在https://gist.github.com/eppz/10669132上find完整的崩溃报告

#import语句中有一个.m文件!

这是由一行代码造成的! 不能相信它。 偷走了4个小时。 哦,它是由一个@class语句组合的。

它显示为一个错误,但xCode / Clang崩溃比你甚至可以build立更快。 :d

致命的模式:

One.h

 #import "Two.m" // Not easy to spot actually. @interface One : NSObject @end 

Two.h

 @class One; @interface Two : NSObject @property (nonatomic, weak) One *one; @end 

除非我提到200多个课程,否则我不能复制它。 这一定是某种竞争条件。

如果在任何Objective-C头文件中有一个@Implementation,似乎足以导致它失败。

在我的情况下,我有一个导入伞头文件本身内的伞头文件。

例如:

在MyFramework.h里面,我有:

 #import <MyFramework/MyFramework.h> 

分度器讨厌这个!

从日志: IDEIndex PCH Creation Lock >看起来像Xcode试图索引项目时崩溃。

因此,请尝试在您的项目或源代码中找出可能导致这种情况的原因,也许将您最新的工作版本与当前版本进行比较