当我选择源代码管理>历史记录时,我的Xcode总是崩溃。这种情况已经发生了很长一段时间,可能可以追溯到Xcode 6,并一直持续到Xcode 7.2。
我附上了坠机后显示的日志:
Process: Xcode [31491]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 7.2 (9548)
Build Info: IDEFrameworks-9548000000000000~7
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Xcode [31491]
User ID: 501
Date/Time: 2015-12-25 11:14:33.771 +0530
OS Version: Mac OS X 10.11.2 (15C50)
Report Version: 11
Anonymous UUID: C50FD82E-3542-C9C3-C7B0-90B2D1E16E02
Sleep/Wake UUID: 256EB97F-CE9F-4D43-88C6-07F3B53C923F
Time Awake Since Boot: 40000 seconds
Time Since Wake: 3600 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: IDESourceControlLogItemsLock
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
ProductBuildVersion: 7C68
UNCAUGHT EXCEPTION (NSInvalidArgumentException): *** -[__NSCFCalendar components:fromDate:]: date cannot be nil
UserInfo: (null)
Hints: None
Backtrace:
0 0x00007fff98884aca __exceptionPreprocess (in CoreFoundation)
1 0x00000001091a9c67 DVTFailureHintExceptionPreprocessor (in DVTFoundation)
2 0x00007fff8c98ff7e objc_exception_throw (in libobjc.A.dylib)
3 0x00007fff987a517b -[__NSCFCalendar components:fromDate:] (in CoreFoundation)
4 0x00007fff987a47fe -[_NSCopyOnWriteCalendarWrapper components:fromDate:] (in CoreFoundation)
5 0x000000010a8dc54a __41-[IDESourceControlLog arrangeLogEntries:]_block_invoke (in IDEKit)
6 0x00007fff9a14a33f _dispatch_client_callout (in libdispatch.dylib)
7 0x00007fff9a14b926 _dispatch_barrier_sync_f_invoke (in libdispatch.dylib)
8 0x00000001091e5005 DVTDispatchBarrierSync (in DVTFoundation)
9 0x0000000108f7d627 -[DVTDispatchLock performLockedBlock:] (in DVTFoundation)
10 0x000000010a4db06a -[IDESourceControlLog arrangeLogEntries:] (in IDEKit)
11 0x000000010a8ddfd6 __109-[IDESourceControlLog loadLogItemsFromRevisions:searchString:searchType:incrementalLogBlock:completionBlock:]_block_invoke_2177 (in IDEKit)
12 0x00000001091e5efa ___DVTAsyncPerformBlockOnMainRunLoop_block_invoke (in DVTFoundation)
13 0x00007fff987944ac __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ (in CoreFoundation)
14 0x00007fff98786165 __CFRunLoopDoBlocks (in CoreFoundation)
15 0x00007fff9878592e __CFRunLoopRun (in CoreFoundation)
16 0x00007fff98785338 CFRunLoopRunSpecific (in CoreFoundation)
17 0x00007fff9a8dd935 RunCurrentEventLoopInMode (in HIToolbox)
18 0x00007fff9a8dd677 ReceiveNextEventCommon (in HIToolbox)
19 0x00007fff9a8dd5af _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox)
20 0x00007fff8d7ee0ee _DPSNextEvent (in AppKit)
21 0x00007fff8dbba943 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit)
22 0x00000001097840c2 -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in DVTKit)
23 0x00007fff8d7e3fc8 -[NSApplication run] (in AppKit)
24 0x00007fff8d766520 NSApplicationMain (in AppKit)
25 0x00007fff882df5ad start (in libdyld.dylib)
abort() called
Application Specific Signatures:
NSInvalidArgumentException
Application Specific Backtrace 1:
0 CoreFoundation 0x00007fff98884ae2 __exceptionPreprocess + 178
1 DVTFoundation 0x00000001091a9c67 DVTFailureHintExceptionPreprocessor + 194
2 libobjc.A.dylib 0x00007fff8c98ff7e objc_exception_throw + 48
3 CoreFoundation 0x00007fff987a517b -[__NSCFCalendar components:fromDate:] + 2315
4 CoreFoundation 0x00007fff987a47fe -[_NSCopyOnWriteCalendarWrapper components:fromDate:] + 78
5 IDEKit 0x000000010a8dc54a __41-[IDESourceControlLog arrangeLogEntries:]_block_invoke + 534
6 libdispatch.dylib 0x00007fff9a14a33f _dispatch_client_callout + 8
7 libdispatch.dylib 0x00007fff9a14b926 _dispatch_barrier_sync_f_invoke + 74
8 DVTFoundation 0x00000001091e5005 DVTDispatchBarrierSync + 62
9 DVTFoundation 0x0000000108f7d627 -[DVTDispatchLock performLockedBlock:] + 116
10 IDEKit 0x000000010a4db06a -[IDESourceControlLog arrangeLogEntries:] + 147
11 IDEKit 0x000000010a8ddfd6 __109-[IDESourceControlLog loadLogItemsFromRevisions:searchString:searchType:incrementalLogBlock:completionBlock:]_block_invoke_2177 + 56
12 DVTFoundation 0x00000001091e5efa ___DVTAsyncPerformBlockOnMainRunLoop_block_invoke + 72
13 CoreFoundation 0x00007fff987944ac __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
14 CoreFoundation 0x00007fff98786165 __CFRunLoopDoBlocks + 341
15 CoreFoundation 0x00007fff9878592e __CFRunLoopRun + 910
16 CoreFoundation 0x00007fff98785338 CFRunLoopRunSpecific + 296
17 HIToolbox 0x00007fff9a8dd935 RunCurrentEventLoopInMode + 235
18 HIToolbox 0x00007fff9a8dd677 ReceiveNextEventCommon + 184
19 HIToolbox 0x00007fff9a8dd5af _BlockUntilNextEventMatchingListInModeWithFilter + 71
20 AppKit 0x00007fff8d7ee0ee _DPSNextEvent + 1067
21 AppKit 0x00007fff8dbba943 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
22 DVTKit 0x00000001097840c2 -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 247
23 AppKit 0x00007fff8d7e3fc8 -[NSApplication run] + 682
24 AppKit 0x00007fff8d766520 NSApplicationMain + 1176
25 libdyld.dylib 0x00007fff882df5ad start + 1
Xcode正试图解析存储库的日志条目,但日期出现问题。
__NSCF日历组件:fromDate:]:日期不能为零
您需要确定的第一件事是,这是否特定于单个存储库。如果是,则存储库中的某些内容无效。您可以尝试运行git fsck
,看看它是否识别出任何损坏或丢失的对象。
- 根据问题的不同,您可以修复、恢复或恢复对象
- 在最坏的情况下,您可能不得不牺牲全部或部分历史记录,方法是初始化新的存储库,或者恢复到存储库的早期备份,然后提交最新的更改
如果该问题影响到所有存储库,请确定该问题是否特定于您的系统。将存储库克隆到另一个系统上,看看它们的Xcode是否可以显示历史记录。
- 如果问题是特定于您的系统的,则可能是安装的软件包或第三方工具的问题(影响您的存储库),或损坏的属性列表(影响Xcode或其工具)。按照严重程度的顺序,您可以尝试:
- 删除并重新安装Xcode
- 删除~/Library/Developer/Xcode中专门与Xcode的用户数据相关的目录
- 在自定义帐户和重新安装其他应用程序和工具的每个步骤中,执行操作系统的干净安装,恢复存储库,然后检查Xcode是否崩溃
最坏的情况是,这可能不是Xcode的问题,这使得其他人很难对原因有具体的答案。但是,通过系统地采取措施来识别和解决问题,您应该能够回到可以查看源代码管理历史记录的状态。