Xcode在发布时崩溃

时间:2015-12-24 10:15:33

标签: ios xcode

我正在开发一个iOS应用程序,我在应用程序中没有改变任何内容。但是在我的Mac重新启动时,Xcode每次都会崩溃。

不知道这是否重要,但我的聚光灯找不到任何应用程序,当我打开取景器并使用快捷键cmd + shift + H时,我看到一个白色的窗口。

Xcode不再启动并抛出此错误:

Process:               Xcode [1346]
Path:                  /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:            com.apple.dt.Xcode
Version:               7.2 (9548)
Build Info:            IDEFrameworks-9548000000000000~7
App Item ID:           497799835
App External ID:       814662604
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Xcode [1346]

Date/Time:             2015-12-24 11:01:44.753 +0100
OS Version:            Mac OS X 10.11.2 (15C50)
Report Version:        11


Time Awake Since Boot: 4000 seconds

System Integrity Protection: enabled

Crashed Thread:        4  Dispatch queue: DVTFilePathEventWatcher - event queue

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0:
--> 
    __TEXT                 0000000108a5a000-0000000108a5e000 [   16K] r-x/rwx SM=COW  /Applications/Xcode.app/Contents/MacOS/Xcode

Application Specific Information:
ProductBuildVersion: 7C68

Thread 0:: Dispatch queue: DVTFilePath cache derivation lock for key DVTFilePathKey_SortedDirectoryContents
0   libobjc.A.dylib                 0x00007fff8df27aa0 search_method_list(method_list_t const*, objc_selector*) + 2
1   libobjc.A.dylib                 0x00007fff8df28d76 lookUpImpOrForward + 413
2   libobjc.A.dylib                 0x00007fff8df22591 objc_msgSend + 209
3   com.apple.dt.DVTFoundation      0x0000000108a741f8 -[DVTFileSystemVNode addCachedEntriesFromDictionary:] + 215
4   com.apple.dt.DVTFoundation      0x0000000108bd2e2d __33-[DVTFilePath cachedValueForKey:]_block_invoke549 + 245
5   libdispatch.dylib               0x00007fff9fcbd33f _dispatch_client_callout + 8
6   libdispatch.dylib               0x00007fff9fcbe926 _dispatch_barrier_sync_f_invoke + 74
7   com.apple.dt.DVTFoundation      0x0000000108cd1005 DVTDispatchBarrierSync + 62
8   com.apple.dt.DVTFoundation      0x0000000108a69627 -[DVTDispatchLock performLockedBlock:] + 116
9   com.apple.dt.DVTFoundation      0x0000000108a715b0 -[DVTFilePath cachedValueForKey:] + 1802
10  com.apple.dt.DVTFoundation      0x0000000108a70afc -[DVTToolchainRegistry scanSearchPathAndRegisterToolchains:] + 563
11  com.apple.dt.IDEFoundation      0x00000001097d1a66 IDEInitialize + 655
12  com.apple.dt.IDEKit             0x0000000109ecdf7c -[IDEApplicationController applicationWillFinishLaunching:] + 708
13  com.apple.CoreFoundation        0x00007fffa18fa70c __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
14  com.apple.CoreFoundation        0x00007fffa18fa67f ___CFXRegistrationPost_block_invoke + 63
15  com.apple.CoreFoundation        0x00007fffa18f9d47 _CFXRegistrationPost + 407
16  com.apple.CoreFoundation        0x00007fffa18f9ab2 ___CFXNotificationPost_block_invoke + 50
17  com.apple.CoreFoundation        0x00007fffa18f3d42 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1922
18  com.apple.CoreFoundation        0x00007fffa17e2145 _CFXNotificationPost + 693
19  com.apple.Foundation            0x00007fff9ef36921 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
20  com.apple.dt.DVTFoundation      0x0000000108c6cf55 -[NSNotificationCenter(DVTNSNotificationCenterAdditions) _dvt_postNotificationName:object:userInfo:] + 698
21  com.apple.AppKit                0x00007fff9db412c2 -[NSApplication finishLaunching] + 354
22  com.apple.dt.DVTKit             0x0000000109275f62 -[DVTApplication finishLaunching] + 149
23  com.apple.AppKit                0x00007fff9db40e05 -[NSApplication run] + 231
24  com.apple.AppKit                0x00007fff9dac3520 NSApplicationMain + 1176
25  libdyld.dylib                   0x00007fff9a8605ad start + 1

由于权限冲突,这可能是一个问题吗?

解答:

我从OSX-Drive更改权限后,每个人都可以写和读。一切正常。但我知道这是一个临时解决方案,所以我决定重新安装我的MAC,一切都很好。

5 个答案:

答案 0 :(得分:13)

在终端中运行此命令删除~/Library/Developer/Xcode/DerivedData

rm -r ~/Library/Developer/XCode/DerivedData

如果这不起作用,此时并且在给定信息的情况下,我建议您删除并重新安装Xcode。

答案 1 :(得分:3)

如果〜/ Library / Developer / Xcode / DerivedData的删除对您不起作用,请尝试以下步骤删除xcuserdata:

  • 打开Finder窗口并导航到您的项目
  • 右键单击.xcodeproj文件(实际上是一个包)
  • 选择显示包装内容
  • 出现一个新窗口
  • 删除一个名为xcuserdata的文件夹

答案 2 :(得分:1)

我建议同时从xcuserdata:.xcodeproj文件中删除.xcworkspace文件夹(使用“显示包内容”打开),然后重试。

我希望这会起作用。

答案 3 :(得分:0)

我有一个地方选择了一个很大的文件,当它试图解析它时崩溃了xcode。然后,当我重新启动它时,它将以某种方式设置为在启动时加载该文件。我看到的唯一方法是临时重命名它在启动时尝试加载的文件,以便将其加载为空。

答案 4 :(得分:0)

确保您的 SPM 包/依赖项没有问题。

这只是另一个建议。我刚刚花了一些时间在一个相当流行的开源项目上调试它。

当我更新 SPM 包时,我的 Xcode 第一次崩溃,所以我相当确定这是该包中未来提交的一个问题或 SPM 错误。我订阅了 Occam's Razor,所以我开始检查提交中的更改。

一段时间后,我在 contents.xcplayground 中发现了重复的 Swift Playground 页面声明。我删除了那一行,推送了 PR,之后一切正常。

为了能够重新打开项目:

  1. 在您选择的代码编辑器(例如 vi、nano、emacs、atom、code)中打开 project.pbxproj
  2. /* Begin XCRemoteSwiftPackageReference section *//* Begin XCSwiftPackageProductDependency section */ 部分删除有问题的一个或多个包。
  3. 保存文件,Xcode 现在应该会打开。

同样,如果您的 Xcode 在打开项目时立即崩溃(并且您上次更新/自动更新了 SPM 包),请检查您的包。