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

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

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

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


当前回答

关闭模拟器 停止应用在xCode中运行。 打开活动监视器,搜索与您的应用程序名称一起运行的进程。 在活动监视器中终止此进程 重新构建您的项目,您应该已经设置好了

其他回答

此错误过去常发生在旧版本的iOS模拟器中,因为另一个设备中正在关闭的作业的旧实例可能与新实例发生冲突。

iOS 6.0及以后版本应该不会遇到这样的问题,因为iOS 6.0引入了引导子集的使用,而iOS 7.0引入了专用引导服务器(launchd_sim)的使用,它与主机的引导服务器完全隔离。

我也有同样的问题,并通过以下方法解决了它

从设备中删除应用程序, 断开设备与Mac的连接, 把设备关掉再打开, 退出Xcode重新上线, 戒烟工具, 最后,再次进行清洁和构建。

我还做了一件事,因为Xcode配置为使用iOS 5.0,而我的项目使用iOS 4.3

删除所有框架并重新添加它们。

这个错误在我身上发生了很多次,几乎每次我在模拟器中测试应用程序时,都会迫使我重新启动。

如果你想完成一些工作,这里有一个变通方法:

在project导航器中单击您的项目 去目标->信息 为应用程序不在后台运行添加一个键并设置为YES。

这意味着当你在模拟器中按下home键或退出模拟器时,应用程序不会挂起。

不要忘记在发布之前更改这个设置!把它放在你的发行清单上:)

如果您发现您的问题是由于僵尸进程:ps -el | grep 'Z' (如之前的评论https://stackoverflow.com/a/8104400/464289),只是想立即解决问题,你可以这样做,而不需要重新启动或杀死任何东西。只需重命名项目目标可执行文件:

单击左侧窗格上的项目 在中间窗格中选择Build Settings 在“包装”下将“产品名称”从$(TARGET_NAME)更改为$(TARGET_NAME).1

简单!

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

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

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

列出你所有的僵尸进程:

ps -el | grep 'Z'

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

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

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