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

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

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

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


当前回答

如果从命令行运行测试(使用xcodebuild test),请确保运行模拟器与您期望在其上运行测试的设备匹配。

您可能正在运行使用iPhone 5的命令行测试。如果您一直在XCode广告中运行iPhone 6,那么运行命令行测试,有时iPhone 6将保持运行状态,您需要手动选择iPhone 5设备,然后再次运行测试。

其他回答

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

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

简单!

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

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

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

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

啊,松了一口气。

我有一个递归setter,它破坏了堆栈,杀死了我的应用程序,以至于我不得不启动我的iPad。这是可以通过修改代码来证明的。

没有答案,但至少还有一个测试要做。打开Terminal,运行命令:"ps-Ael | grep Z"。如果你得到两个条目,一个是“(哐当)”,另一个是你的应用程序或公司名称,你就会被重启。

如果你是开发人员,输入一个简短的bug,告诉苹果重启是多么烦人,并提到他们可以将这个bug dup到“rdar://10401934”,就像我刚才输入的那样。

大卫