我在模拟器上测试我的应用程序时,它在点击UIAlertView的一个按钮时崩溃了。我在那里停止调试,对代码做了一些更改,并重新构建应用程序。现在,当我运行应用程序时,我在控制台中得到这个错误

无法向引导服务器注册com.myApp.debug。Error:未知错误码。 这通常意味着该进程的另一个实例已经在运行或挂起在调试器中。程序接收信号:“SIGABRT”。

我尝试从模拟器中删除应用程序,做一个干净的构建,但当我尝试运行应用程序时,我仍然得到这个错误。

我应该怎么做才能再次在模拟器上运行应用程序?


当前回答

哦,我的天——我尝试了上面和其他帖子中列出的所有方法。重新安装Xcode,重启电脑,将所有丢失的文件复制到正确的文件夹中……最终,我备份了我的iphone,删除并恢复了它,它工作了!

我认为可能是由于我的iphone白色断开了连接,它正在运行性能工具捕捉漏洞。或者类似的事情。

啊,松了一口气。

其他回答

如果在iPhone上测试时出现这种情况。重启电话。从我被告知的电话或模拟器仍然认为有一个应用程序运行的实例,所以当它最后一次运行时,它没有正确地终止做要么在你的代码错误或电话/模拟器只是想有一个呻吟。

我发现我已经开始有这个问题的Lion + Xcode 4.2。我在Xcode 4.3中也遇到过这个问题。

我已经尝试了所有的建议,但没有一个是有效的,除了一个完全重启。

以下是判断是否需要快速重启的方法。

列出你所有的僵尸进程:

ps -el | grep 'Z'

如果你看到你的应用程序被列为僵尸进程,你需要重新启动你的机器。错误消息表示“这通常意味着此进程的另一个实例已经在运行或挂起在调试器中”。Xcode会检测这个你无法杀死的僵尸进程。解决这个问题的唯一方法就是重新启动系统。:(

编辑,20120823:我对僵尸进程有更好的了解,所以我想更新这个答案。当父进程没有在正在终止的子进程上调用wait()(等待进程改变状态)时,就会创建僵尸进程。你不能直接在僵尸进程上运行“kill”,但是如果你杀死了父进程,僵尸子进程将被“收割”并从进程表中删除。

我很久没有看到这个问题了,所以还没有检查这个场景中的父进程是什么。杀死父进程的替代方法是重新启动系统。:)

我只是遇到了这种情况:我只在我的设备上得到错误,而模拟器工作正常。我最终不得不重置我的设备,错误就消失了。

备选解决方案:

给你的应用一个新的标识符。如果它叫com.foobar。Myapp,命名为com.foobar。myapp01

你会丢失应用中的所有数据,因为就iPhone模拟器而言,它实际上是一个正在运行的新应用。这可能比重启更烦人,也可能不会——只是想把它添加到列表中。

修复后重新启动我的手机删除应用程序,然后重建它干净,再次运行。现在工作正常。

奇怪。