为什么Xcode 4.3.1(4E1019)/ 4.3.2(4E2002)经常与iOS模拟器卡住?

27
每10-20次运行中,有一次我在模拟器中尝试启动新的应用程序运行时会出现Xcode卡住的情况。应用程序无法启动。
我可以退出模拟器,但Xcode将简单地忽略退出操作。
目前唯一的解决方案是终止并重新启动Xcode。幸运的是,这似乎没有副作用。
(xcode 4.3 在 Lion 上,8GB mac mini,5.1 iOS)
编辑:我向苹果公司提交了一个bug报告。
编辑于2012年6月:在Xcode 4.3.2(4E2002)中仍然存在该问题。
编辑于2012年10月:使用Xcode 4.5后,此问题似乎已经消失了。我注意到,现在模拟器上的每次运行都有几秒钟的暂停,然后才开始启动应用程序。也许是通过在某个地方引入较长的等待时间来解决这个问题。(天下没有免费的午餐。)

1
我经历了类似的事情,通常在"挂起"期间开始构建(cmd-B)似乎可以让您再次移动。然后您会在停止按钮下拉菜单中运行两个会话,其中一个不是真实的。这相当糟糕。 - jrturton
实际上,您仍然可以进行构建(cmd-B),但即使模拟器已退出,Xcode 仍认为模拟器处于“使用中”。 - RickJansen
这可能只是事情的本质。大多数情况下,XCode开发相当不错,但似乎会卡在奇怪的地方和/或崩溃。您已经更新到4.3.1吗? - Squatch
是的,这是版本4.3.1(4E1019)。 - RickJansen
1
在Mountain Lion(10.8)上,使用Xcode版本4.4.1(4F1003)仍然存在问题。 - Dominique Vial
我仍然在Xcode 4.6上遇到这个问题。事实上,现在似乎比4.5时更加频繁。 - Chris Garrett
7个回答

6

当你使用iPhone模拟器时,如果出现卡顿情况,可采用以下方法来解决问题:切换到iPad模拟器,或者反之亦然。会提示模拟器已经在使用中,但请忽略该信息。接着再次切换回导致问题的设备模拟器,重新运行即可解决!

Xcode可能无法与模拟器中的运行进程通信,因此以上方法有所帮助。


1
我也发现这有帮助,但并非总是如此。 - yeahdixon

4
我发现挂起比所有其他问题都要难。 甚至无法进入切换模拟器。退出Xcode不起作用,因为它不想停止所有任务。尝试杀死一个僵尸clang任务,但那并没有起作用。虽然我知道clang与lldb相关联,但是没有看到gdb或lldb任务。所以...除了强制退出Xcode或在终端中kill -9 Xcode进程外,没有答案。更新...尝试这个https://dev59.com/T2kw5IYBdhLWcg3wDWTL#10277189(也被此https://dev59.com/i2kw5IYBdhLWcg3wx9aC#13400190引用)!很难相信它会起作用,但我每天使用2-3次,并且我笑了又笑。这很疯狂,但它确实有用。投票支持它。提出这个答案的人需要一些认真的赞扬!

我同意。我已经尝试了所有建议的答案,但都没有起作用。唯一的解决方案是关闭Xcode。我正在使用Xcode 4.6。 - JeffB6688

3

使用 GDB 代替 LLDB(默认)进行调试。目前 LLDB 存在一些错误,会导致启动挂起、虚假的内存地址读取和未捕获断点导致的 EXC_BREAKPOINT 异常。


2
谢谢,我已经检查过了,但是GDB已经是调试器,而不是LLDB。 - RickJansen

2

只需按下 command+b 并快速按下 command+r,它将会运行。


0

在模拟器中编译运行新程序之前,似乎停止当前正在运行的应用程序可以解决问题:command+.command+r

山狮(10.8)+ Xcode版本4.4.1(4F1003)


0

我经常遇到这个问题。每次我启动XCode之后,我可以运行一次,但是如果我试图再次运行(在模拟器中输入Command-Q之后),如果我想再次运行,就必须强制退出XCode。我可以通过ps -ef查看正在运行的模拟器进程,但即使我杀死它们(它们死了),XCode仍然认为有一个模拟器在运行。

我尝试在退出模拟器之前执行iOS Simulator > Reset Content and Settings...取得了一些成功。我还尝试在完成测试后立即停止模拟器(来自XCode)也有一些成功。


0

我已向苹果公司报告了此问题

BUG REPORT
12872744

https://devforums.apple.com/thread/175685

您还可以重新启动模拟器并手动重启应用程序,这会唤醒XCode并将其从卡住的DEBUG模式切换回STOP模式。
您需要在Xcode中再次开始运行,但至少它停止了挂起。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接