在Xcode 4.3中无法停止执行任务

25

我刚安装了Xcode 4.3,使用iOS模拟器运行我的应用程序时遇到了一些问题。我可以退出模拟器,但无法停止正在运行的任务,无论是点击停止按钮还是使用快捷键都不行。为了停止进程,我必须完全退出Xcode并重新启动。这显然使得任何开发都非常困难。我在这里找到了一个bug报告:链接,它听起来与我看到的问题非常相似。

这是否是4.3已知的问题,或者其他人有没有遇到过这种行为?我已经一年多没有使用Xcode了(v3),所以我无法确定它是否可以在之前的任何版本中正常工作。


如果您在调试器监视下退出正在开发的MacOSX应用程序,则会发生同样的情况。必须记住要从Xcode内部停止调试,而不是通过退出应用程序来停止调试。 - OldPeculier
另一种导致此问题的方法:在关闭Xcode的情况下启动模拟器,然后打开Xcode。告诉它在模拟器中启动。它将无法启动,但会表现得像已经启动,并拒绝停止未启动的任务。 - ArtOfWarfare
你应该将下面 @yeahdixon 的回答标记为解决方案。 - deepseadiving
5个回答

54

1
真是太棒了(也有点令人惊讶!)谢谢,你刚刚为我节省了将来数百个小时的时间!! - sonxurxo
2
非常感谢您提供这个节省时间的答案! - Paul
2
使用这个巧妙的解决办法让我感到一种特殊的快乐。就像是为了曾经Xcode给我带来的伤痛而治愈我的灵魂一样。我点击Dock中的模拟器图标,然后笑了起来,笑个不停。 - john.k.doe
3
是的,Dixon,你很强大。 - zszen
我很遗憾之前没有找到这个。 - Maen

16

很遗憾,我可以确认在Mountain Lion上使用Xcode 4.4仍然存在这个问题。

如果我使用Cmd+Q关闭iOS模拟器,而不是让它一直开着并使用XCode工具栏上的“停止”按钮停止模拟器,以下情况会发生(虽然不是每次,但在25%的情况下,当我启动同一应用程序时 - 我认为这与应用程序状态有关,但我还没有理解如何):

  • Xcode中的“运行”按钮不会打开新的iOS模拟器会话;“停止”按钮仍然可点击,但不起作用;
  • 无论您点击多少次“停止”按钮,工具栏都会继续显示“正在iPhone模拟器上运行”;
  • 如果手动启动iOS模拟器,则它不会链接到Xcode会话;
  • 不仅需要重新启动Xcode:重启必须是强制性的,因为简单的Xcode“退出”命令将不起作用。

这里也完全一样。我在Lion和Xcode 4.3上遇到过这个问题。但是似乎在Mountain Lion和Xcode 4.4上更糟糕。 我猜我必须习惯从Xcode停止应用程序并放弃cmd + q的事情了! ;) - Raphael
1
有人为此提交了 rdar 吗? - Ben G

8

自从更新后,我经常遇到这个问题。解决方法似乎是在模拟器仍在运行应用程序时尝试记得停止Xcode中的应用程序。当你在Xcode之外终止模拟器时,模拟器进程会挂起,无法像预期的那样将终止消息传递给Xcode。


我一直在做同样的事情,如果我从Xcode停止它,它通常会正常关闭,但是退出模拟器肯定会导致它挂起。 - eriknelson
希望这可以帮到你,因为这不仅是你遇到的问题。也许在4.3.2中会修复这个问题,但现在它似乎只是一个错误。 - Mick MacCallum

3

虽然不是一个解决方案,但我刚刚在“系统偏好设置”中重写了“退出iOS模拟器”的键盘快捷键,将其改成我不太可能冲动地输入的东西,例如⌘⌥Q。


这似乎是唯一的解决方案,不幸的是 :( - Krishnabhadra

1

我也遇到了类似的问题,可以通过重启Xcode来解决,但这很烦人。我已经找到了一个解决此“问题”的方法。

  1. 前往 ~/Applications/,打开 Xcode.app 的上下文菜单,选择 Show Package Contents

  2. 导航到 /Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/

  3. 复制 iOS Simulator.app 并将其粘贴到(例如)您的桌面上

  4. 接下来启动您的 OSX 系统偏好设置面板并导航到 Keyboard

  5. 选择第二个选项卡 Keyboard Shortcuts

  6. 在左侧选择 Application Shortcuts

  7. 在右侧按下小的 + 符号

  8. 会出现一个小对话框。
    在第一个选择框中选择复制的 iOS Simulator.app > Other...

  9. Menu Title 中填写 Home

  10. 并为菜单快捷键“类型”输入 COMMAND + Q

  11. 现在点击 Add 并关闭您的系统偏好设置

  12. 从您的桌面中删除 iOS Simulator.app

如果您现在通过Xcode启动模拟器,并且(意外地)想要在运行并连接到Xcode的模拟器中退出 > 您无法这样做。

我知道这并不能解决问题本身,但对于那些使用键盘快捷方式完成所有操作的专业用户来说,这可能会有所帮助。


这个能否进行修改,调用Xcode的停止按钮呢? - ArtOfWarfare

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