为什么Xcode 4.3.1(4E1019)/ 4.3.2(4E2002)会定期与iOS模拟器挂起?

时间:2012-03-13 13:25:17

标签: ios xcode ios-simulator osx-lion

在每10-20次运行中,我尝试在模拟器中启动新的App运行时遇到挂起的Xcode。该应用程序将无法启动。

我可以退出模拟器,但Xcode会忽略退出。

到目前为止唯一的解决方案是杀死并重新启动Xcode。幸运的是,这似乎没有副作用。

(Lion上的xcode 4.3,8GB mac mini,5.1 iOS)

编辑:我向Apple提交了一份错误报告。

编辑2012年6月:在Xcode 4.3.2(4E2002)

中仍然存在问题

编辑2012年10月:使用Xcode 4.5,这个问题似乎已经消失了。我似乎注意到,在启动应用程序之前,模拟器上的每次运行都会暂停几秒钟。也许通过在某处引入更长的等待来解决问题。 (没有免费的午餐。)

7 个答案:

答案 0 :(得分:6)

找到一种解决方法,可以避免在发生这种情况时杀死Xcode:如果在运行iPhone模拟器时发生挂起切换到iPad模拟器,反之亦然。您将收到模拟器已在使用中的消息,但忽略它。然后切换回导致您遇到麻烦的设备模拟器,新的运行将起作用!

也许Xcode在模拟器中联系正在运行的进程有困难,以上解决方法有帮助。

答案 1 :(得分:4)

我发现悬挂比这更难。甚至不能进入切换模拟器。退出Xcode将无法工作,因为它不想停止所有任务。试图杀死一个僵尸铿锵的任务,但那不起作用。没有看到gdb或lldb任务,虽然我知道clang与lldb有关。

所以...除了强制退出xcode或kill终端中的-9 xcode进程之外没有答案。

更新 ...试试这个https://stackoverflow.com/a/10277189/774691(这也是https://stackoverflow.com/a/13400190/774691引用的)!它不可能相信它有效,但我每天使用2-3次,我笑,我笑,我笑。这很疯狂,但它确实有效。投票吧。提出这个答案的人需要一些严肃的赞成!

答案 2 :(得分:3)

使用GDB而不是LLDB(默认)进行调试。目前LLDB中存在一些错误,影响启动挂起,错误的内存地址读取,未捕获的断点导致EXC_BREAKPOINT死亡。

答案 3 :(得分:2)

只需按命令 + b 并快速按命令 + r 即可运行。

答案 4 :(得分:0)

我看到了很多。每次我启动XCode,我得到一次运行然后在那之后如果我再次尝试运行(在模拟器中的Command-Q之后)我必须强制退出XCode,如果我想再次运行。我可以看到使用ps -ef运行模拟器进程,但即使我杀了他们(并且他们死了),XCode仍然认为有一个模拟器正在运行。

我在执行iOS模拟器>时取得了一些成功重置内容和设置...在我退出模拟器之前。我在完成测试后立即停止模拟器(来自XCode)也取得了一些成功。

答案 5 :(得分:0)

似乎在新的编译运行之前停止当前在模拟器中运行的App解决了问题: command + command + - [R

Moutain Lion(10.8)+ Xcode Version 4.4.1(4F1003)

答案 6 :(得分:0)

我向苹果报告了

BUG REPORT
12872744

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

您也可以重新启动模拟器并手动重新启动应用程序,这会唤醒XCode并离开卡住的DEBUG模式并返回STOP模式。

你必须再次在Xcode中开始运行,但至少它已经停止了。