Xcode 4.6在iPhone模拟器中运行项目后经常会卡住。

19

在iPhone模拟器中运行我的iPhone项目后,Xcode 4.6会在每2或3次运行时卡在“在iPhone 6.1模拟器中运行”阶段。是的,这种情况非常频繁。

它几乎在我运行的所有项目和我两台Mac机器上(Mac Mini 8GB、Core 2 Duo、SSD驱动器和MacBook Pro Core 2 Duo 3.1 Ghz、8BG RAM、SSD驱动器)都会发生。

这也是以前Xcode的问题,但它已经很少发生了,因此可以容忍。

我需要重新启动Xcode和模拟器才能再次运行项目(有时甚至还需要重新启动OS X)。

这是什么原因,除了重新启动Xcode之外,我们还能做些什么来解决它? 为什么苹果不能解决这个问题这么长时间呢?

更新:

我被标记为不构造性的问题,而我并不同意,因为我的主要和第一个问题是:

是什么导致了这种定期的卡顿? 为什么苹果这么长时间都没有解决它不是我主要关注的。

主要关注非常实际和技术性:这种定期故障的原因是什么,开发人员手动能做些什么来帮助它?

毕竟,Xcode只是我们在工作中使用的一个工具,任何可以提高生产力的知识都是有价值的。

更新2:

**在重新安装到最新的Mac OS X Lion(清洁安装)并安装最新的Xcode、iTunes、Safari、iPhone模拟器后,问题仍然存在。** 这显然是Xcode或iPhone模拟器的错误。


1
对我来说,通常在开始新的调试会话之前手动停止任何现有的调试会话会有所帮助。 - Till
是的,但是当您第一次尝试在不停止新会话的情况下启动新会话时,Xcode会询问您是否要停止已经运行的会话(并带有“不再询问”选项)。因此,在新会话开始之前,会话会自动停止。我只是好奇为什么这种情况这么长时间都没有得到改善。 - Lukasz
1
无建设性。这里没有人能说出为什么苹果会或不会做某事。 - matt
不一定是无建设性的 - 可能是技术原因。在调试会话如何管理方面可能存在一般缺陷,也许开发人员应该知道如何手动解决它(终止某些进程)。 - Lukasz
2
这是XCode中的一个错误,而且是一个严重的错误。它让我发疯了。 - Warren P
这是一个相当古老的问题,一直不断地出现。因此,可能将此问题标记为重复?[1] [2] [3] [4] - Kitt Basch
4个回答

4

我经常遇到同样的问题,有时一天会发生多次,不一定是在崩溃之后。所以,这个 bug 是存在的,我已经向 Apple 报告了,并根据数据不断修订报告。你也应该这样做(并提供一个样本报告给 Apple,展示每次卡住时线程的运行情况)。这与 PLCrashReporter 无关;我可以在一个空白模板项目中遇到这个问题。然而,你的问题似乎没有建设性,因为没有人能够给出有用的答案。谁能告诉你为什么 Apple 没有修复它呢?唯一能告诉你的人是 Apple,而你知道他们不会告诉你。所以,你的问题纯粹是修辞上的。:)


难道你不觉得让其他人找到比每次重新启动Xcode更好、更高效的解决方案是很有价值的吗?这种方式非常低效且浪费时间。 - Lukasz
没有更好的解决方案。我完全无法预测地遇到了这个问题。没有办法避免它。当它发生时,就会发生。此时,Xcode被卡住了。唯一的解决方案是强制退出Xcode。 - matt
这太令人失望了。现在在我的大项目中,每当我在开发新的实验性功能并遇到崩溃时 - 我要花费一半的时间重新启动该死的Xcode!我从未对此感到如此沮丧! - Lukasz

2

我在类似的帖子中找到了解决方法。确保您的 etc hosts 文件中包含 '127.0.0.1 localhost'。对于我来说,这个方法解决了我一直以来遇到的“挂起连接模拟器”问题。


1
我在我的 etc/hosts 文件中有这个条目,但它没有起到帮助的作用。 - Lukasz
对我来说没问题!我在配置MySQL的虚拟主机时恰好玩了一下这个文件。我不知道为什么会影响XCode调试器,但如果有人能猜到原因,我会很佩服。 - Manav Sharma

1
我遇到同样的问题,发现与最新的iTunes有关,因为当我拔掉我的iPhone目标时,颜色轮会消失。我已经将iTunes降级到10.7,问题解决了。新版本的iTunes似乎在查询iPhone时卡住了,无法继续进行。我在旧的iMac上运行Mac OS X 10.7.5。在带有10.8和最新iTunes的MacBook上运行时没有这个问题。

对我没用。我现在已经更新到最新的iTunes(11.0.2 64位),但什么也没有改变。 - Lukasz

1
我注意到您可以通过像这样在模拟器上运行应用程序来显着减少此错误的发生:
  • 第一次在模拟器上运行没有问题,上传应用程序到模拟器时不会冻结
  • 当您想要重新运行应用程序时,请确保首先通过按停止(或键cmd+。)停止前一个执行,并等待3-5秒钟
  • 运行应用程序(cmd+r)
停止应用程序后等待几秒钟似乎可以防止Xcode执行冻结。我认为调试器没有足够的时间进行分离和重新连接,因此它会挂起。

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