任何模拟器崩溃后都需要重新启动 XCode

Posted

技术标签:

【中文标题】任何模拟器崩溃后都需要重新启动 XCode【英文标题】:XCode needs to be restarted after any simulator crash 【发布时间】:2011-07-15 17:40:19 【问题描述】:

就在最近,我开始在使用 XCode 时遇到很多麻烦。每当我在模拟器上运行我的应用程序并崩溃(引发异常或其他问题)时,模拟器会在我下次运行它时崩溃,即使我撤消了导致初始崩溃的代码。

例如,在一个 init 方法中,我调用

 self = [super init];
 return self;

我可以运行它一百次,每次都运行良好。但如果我打电话

 self = [super init];
 [super wrlgnqelrguqrngouqerngerg];
 return self;

然后它应该崩溃。但是,如果我撤消随机消息调用,那么它又是

 self = [super init];
 return self;

我再次在模拟器上运行它,它崩溃了!即使我解开了导致崩溃的代码。当我点击运行时,它说 XCode 内部错误,当我点击显示详细信息时,它给了我这个:

ASSERTION FAILURE in /SourceCache/IDEKit/IDEKit-303/Framework/Classes/Workspace/IDEWorkspaceTabController.m:2327
Details:  Assertion failed: [suppressionTargetValue isEqualToString:_kUserDefaults_IDESuppressStopExecutionWarningTargetValue_Add]
Object:   <IDEWorkspaceTabController: 0x201759bc0>
Method:   -_showWarningForBuild:forOtherExecution:trackersToStop:taskActionBlock:
Thread:   <NSThread: 0x2000217a0>name = (null), num = 1
Hints:   None
Backtrace:
  0  0x0000000100949773 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit)
  1  0x000000010006d394 _DVTAssertionFailureHandler (in DVTFoundation)
  2  0x0000000100931e02 -[IDEWorkspaceTabController _showWarningForBuild:forOtherExecution:trackersToStop:taskActionBlock:] (in IDEKit)
  3  0x00000001008e830b -[IDEWorkspaceTabController _performContextTask:command:commandName:] (in IDEKit)
  4  0x00007fff81fd7e9a -[NSApplication sendAction:to:from:] (in AppKit)
  5  0x00000001001cf63c -[DVTApplication sendAction:to:from:] (in DVTKit)
  6  0x000000010085b656 -[IDEApplication sendAction:to:from:] (in IDEKit)
  7  0x00007fff81fd7e9a -[NSApplication sendAction:to:from:] (in AppKit)
  8  0x00000001001cf63c -[DVTApplication sendAction:to:from:] (in DVTKit)
  9  0x000000010085b656 -[IDEApplication sendAction:to:from:] (in IDEKit)
 10  0x000000010031b9f3 -[DVTDelayedMenuButtonCell trackMouse:inRect:ofView:untilMouseUp:] (in DVTKit)
 11  0x00007fff82062215 -[NSControl mouseDown:] (in AppKit)
 12  0x00007fff81f7c34f -[NSWindow sendEvent:] (in AppKit)
 13  0x00007fff81eb1a86 -[NSApplication sendEvent:] (in AppKit)
 14  0x000000010085b36e -[IDEApplication sendEvent:] (in IDEKit)
 15  0x00007fff81e484da -[NSApplication run] (in AppKit)
 16  0x00007fff81e411a8 NSApplicationMain (in AppKit)
 17  0x0000000100000eec
 18  0x0000000000000002

然后我点击继续,模拟器启动,应用程序崩溃,我得到:

Couldn't register NI.nipod-app-final with the bootstrap server. Error: unknown error code.
This generally means that another instance of this process was already running or is hung in the debugger.

我已尝试重新安装 XCode。没用!

【问题讨论】:

您正在使用其中一个测试版吗?提交错误。即使你不是,你也可以向苹果提交错误 【参考方案1】:

我通过删除我的偏好文件解决了这个问题。清理项目和模拟器不起作用。我在用户名/库/首选项中找到了该文件。它被称为 com.apple.Xcode.plist。那里还有一些其他文件,其名称中包含 Xcode。我删除了所有三个,重新启动了 XCode,一切正常。我使用的是 XCode 4。

【讨论】:

【参考方案2】:

您是否尝试过清除 ios 模拟器内容?转到 iOS 模拟器 > 清除所有内容。

然后在 xCode 中清理您的项目(在构建菜单中可用)(然后可能尝试另一个 iOS SDK)。 然后运行它。它应该可以工作,如果不重复清除/清洁并重新启动您的 mac。

【讨论】:

以上是关于任何模拟器崩溃后都需要重新启动 XCode的主要内容,如果未能解决你的问题,请参考以下文章

XCode 7.3 模拟器无法启动

当我启动 iphone 模拟器时,Lion Osx 有时会导致所有应用程序崩溃

Xcode:“构建并运行”而不重新启动 iPhone 模拟器

启动 iOS 模拟器时 XCode 锁定

设备上的应用程序崩溃,但适用于模拟器 iOS

iOS模拟器未启动