我和许多其他人一样,遇到了XCode 6+崩溃的问题。我得到SourceKit崩溃以及完整的应用程序崩溃。一时兴起,我想我尝试6.1.1(开发人员成员中心),更糟糕的是,调试器断点现在导致完整的应用程序崩溃。所以我说忘了它然后回到6.1,但是在放入调试器断点时我仍然会崩溃。
显然,这个带断点的崩溃只影响模拟器,物理设备设置并在没有问题的情况下在断点处停止。怪异!
绝对让人抓狂!其他人得到这个?
我尝试的事情:
堆栈跟踪的负责人:
Process: Xcode [7904]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 6.1 (6604)
Build Info: IDEFrameworks-6604000000000000~2
App Item ID: 497799835
App External ID: 752282650
Code Type: X86-64 (Native)
Parent Process: launchd [185]
Responsible: Xcode [7904]
User ID: 501
Date/Time: 2014-11-25 12:32:49.348 -0800
OS Version: Mac OS X 10.9.5 (13F34)
Report Version: 11
Anonymous UUID: E22980F9-B80B-F985-200A-FE471C623C56
Crashed Thread: 23 <DBGLLDBSessionThread (pid=7957)>
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000001409bdfd0
VM Regions Near 0x1409bdfd0:
Stack 000000014093b000-00000001409bd000 [ 520K] rw-/rwx SM=COW thread 22
--> STACK GUARD 00000001409bd000-00000001409be000 [ 4K] ---/rwx SM=NUL stack guard for thread 23
Stack 00000001409be000-0000000140a40000 [ 520K] rw-/rwx SM=COW thread 23
Application Specific Information:
ProductBuildVersion: 6A1052d
...
Thread 23 Crashed:: <DBGLLDBSessionThread (pid=7957)>
0 libsystem_pthread.dylib 0x00007fff90eb82cf __mtx_droplock + 17
1 libsystem_pthread.dylib 0x00007fff90eb88f3 pthread_mutex_unlock + 60
2 com.apple.LLDB.framework 0x000000011808f8be lldb_private::Mutex::Locker::~Locker() + 22
3 com.apple.LLDB.framework 0x00000001180ed55f GDBRemoteCommunication::CheckForPacket(unsigned char const*, unsigned long, StringExtractorGDBRemote&) + 2423
4 com.apple.LLDB.framework 0x00000001180ec99e GDBRemoteCommunication::WaitForPacketWithTimeoutMicroSecondsNoLock(StringExtractorGDBRemote&, unsigned int) + 88
5 com.apple.LLDB.framework 0x00000001181eeb1b GDBRemoteCommunicationClient::SendPacketAndWaitForResponse(char const*, unsigned long, StringExtractorGDBRemote&, bool) + 91
6 com.apple.LLDB.framework 0x00000001180f7574 ProcessGDBRemote::DoReadMemory(unsigned long long, void*, unsigned long, lldb_private::Error&) + 216
7 com.apple.LLDB.framework 0x00000001181a452a lldb_private::Process::ReadMemoryFromInferior(unsigned long long, void*, unsigned long, lldb_private::Error&) + 94
8 com.apple.LLDB.framework 0x0000000118171889 lldb_private::ProcessStructReader::ProcessStructReader(lldb_private::Process*, unsigned long long, lldb_private::ClangASTType) + 561
9 com.apple.LLDB.framework 0x0000000118169082 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 354
10 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
11 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
12 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
13 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
14 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
15 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
16 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
17 com.apple.LLDB.framework 0x00000001181690d1 lldb_private::SwiftLanguageRuntime::ClassMetadata::ClassMetadata(lldb_private::SwiftLanguageRuntime&, unsigned long long) + 433
18 com.apple.LLDB.framework 0x000000011816625d lldb_private::SwiftLanguageRuntime::GetMetadataForLocation(unsigned long long) + 531
...
答案 0 :(得分:11)
这些奇怪的XCode行为多年来已经提出了许多解决方案,所以我也包括了所有这些步骤......但是,我已经添加了一些我自己的(当一起完成时)并且按顺序)从来没有解决我遇到的每个奇怪的XCode问题......
请注意:完成所有这些步骤(按顺序)可能很重要......我发现其中一些乍一看似乎有点矫枉过正或者说它们无关紧要,但我的体验已经表明,每一步都可以让XCode恢复正常的工作状态。因此,我不建议跳过任何步骤或更改其顺序。
话虽如此,如果您发现需要调整以下步骤,请发表评论...... XCode会不断变化,因此这些步骤也可能需要随时间变化。
XCode崩溃后:
1)如果模拟器仍在运行,请确保在关闭之前选择IOS Simulator->重置内容和设置。
2)关闭模拟器(CMD-Q)
3)窗口 - &gt;组织者 - &gt;删除派生数据
4)如果在任何设备上进行调试,请从设备中删除该应用并完全重新启动设备。
5)启动XCode
6)删除所有断点
7)产品 - &gt; (按住Alt /选项键)清洁构建文件夹
8)产品 - &gt;清洁
9)再次通过XCode关闭XCode-&gt;退出XCode(注意:必须是 GRACEFUL 退出,因此XCode可以正确地完成关闭/清理循环)
10)重启Mac
11)启动Xcode
12)如果在模拟器中运行,请选择一个不同的设备进行模拟而不是崩溃。
13)对您的应用进行测试运行(没有断点)
14)如果一切顺利,开始添加断点(所有异常总是一个很好的起点)。
HAIL MARY CLAUSE(又名“Corbomite演习”):如果执行以上所有操作无效,请再次执行上述所有步骤,但在步骤9和10之间插入以下步骤: 9A)删除XCode应用程序并重新安装XCode。