Xcode编译了我的应用,但无法在模拟器中运行

54

当我编译我的应用时,Xcode只显示“附加到项目名称...”并停在那里。 调试器只打印出以下内容:

错误: 无法附加到进程ID 0

我尝试了再次清理和构建,但仍然无法解决。我搜索了谷歌,但没有找到有用的东西。 如何解决这个问题?谢谢!


我认为应该在问题中加入以下内容:为什么会发生这种情况,如何预防?在我的情况下,我开始经常看到这个问题,是在我编辑一个静态库(动态链接)后出现的。那么,在我的情况下,是否有设置或其他方法可以阻止这个问题的出现? - abbood
1
同一个问题出现了3次:one two three。每个问题下都有大量的答案,如果这个答案对你没有帮助,请查看其他两个问题。 - bobobobo
请确保您没有使用Xcode关键字命名的任何文件,例如:default / delete / resource等。 - user2731193
20个回答

75

对我而言,解决办法就是删除Xcode之前生成的所有内容:

  • 模拟器上的应用程序...如果无法通过到达主屏幕来完成此操作,则可以直接在以下位置删除应用程序:~/Library/Application Support/iPhoneSimulator/6.0/Applications
  • 在组织者(Project Organizer)中删除Derived Data或直接在~/Library/Developer/Xcode/DerivedData中删除
  • 通过选择"Product"菜单栏并按下Alt键单击“Clean Build Folder”来清理Build文件夹
  • 重启Xcode

1
这对我来说需要三个步骤。+1 - lambmj
1
第二步和第三步一起重启后对我有用。谢谢。 - Stanislav Pankevich
  1. IOS 模拟器 > 重置内容和设置 - 在模拟器中
  2. 产品 > 清理 - 在 xCode 中
  3. 重新构建
- Nazir
2
很遗憾苹果没有资源来修复这个漏洞。感谢Lindermann提供的解决方法! - Jason Cragun
我没有~/Library/Application。 - quantumpotato
@quantumpotato 自OSX 10.7以来,~/Library文件夹对用户而言是隐藏的。只需在Google中搜索“Mountain Lion Library Folder”或类似内容,您将找到545465个教程,这些教程将解释如何访问此文件夹。 - Lindemann

11

您尝试过完全关闭模拟器,或者如果无法关闭,则重置模拟器及其所有内容通常是解决问题的方法。


他实际上是指重置模拟器本身。 - Yariv Nissim

8
我最终让模拟器再次正常工作的方法是删除用户目录下 Library/Application Support/iPhone Simulator/ 下的所有内容。我认为最初导致问题的原因是尝试使用一个名为“Resources”的目录,如此处所述:https://dev59.com/YXM_5IYBdhLWcg3wt1g0#1265168

2
“reference folder”所在的资源文件夹是导致问题的根本原因。 - Ricardo Sanchez-Saez
+1 我认为应该更加强调资源文件夹问题,因为这对我来说显然是个问题。 - eladleb
如果您添加了名为“Resources”的文件夹引用,则似乎会发生这种情况。这是在XCode 4.6中发生的。我不得不删除资源文件夹引用并进行清理以解决它。 - Chris Ching

6
当我同时打开两个具有相同包标识符的Xcode项目时,发生了这种情况。
解决方法:只留下一个具有相同包标识符的项目。

4
Lindemann的解决方案对我很有用。不过,在进一步开发过程中,我遇到了另一种情况,会产生这个问题:如果您创建一个文件夹引用(Xcode文件浏览器上的蓝色文件夹,而不是只是分组的黄色文件夹)并将其命名为“Resources”,则同样会出现此问题。在这种情况下的解决方法是简单地将该文件夹重命名。 在此之后,请遵循Lindemann的解决方案。

1
你是说 Lindemann 吗?(我在页面中搜索 Lindermann,但没有找到任何内容...) - fatuhoku
你是认真的吗!?+100000 非常感谢!现在一切都正常了! - Michael Rodrigues
哎呀!我遇到了同样的问题! - Wanbok Choi

2

当我在OS X Mountain Lion上安装XCode 4.5时,遇到了类似的问题。我搜索了一段时间并尝试了一些解决方法,但最终解决问题的办法是将“127.0.0.1 localhost”添加到我的hosts文件(/etc/hosts)中。

以下是我所做的:

Open a terminal shell with cmd+space > terminal
type in "cd /etc"
type in "sudo nano hosts"
type in your root password
add "127.0.0.1 localhost"
save with ctrl+o > return
close with ctrl+x
log out and log in again or restart

1
似乎有很多因素会导致这个错误,但对我来说,问题在于我在我的plist中缺少了关键字CFBundleIdentifier
添加后,模拟器正常启动。

只是在进行更多测试,似乎在plist中实际上您需要的唯一两个键来使应用程序在模拟器上运行是CFBundleExecutableCFBundleIdentifier - Toby
是的,这正是我的问题。我从Google Code下载了一个项目,但CFBundleIdentifier已被删除。恢复默认值w.${PRODUCT_NAME:rfc1034identifier}解决了问题。 - bobobobo

1
同时,请确保您的文件/组名称不会与项目的默认设置发生冲突。
当我向我的项目添加info.plist文件(坏主意)时,问题开始出现。当您添加“资源”组时也会出现同样的情况。我没有详尽的清单,但如果有人有,请分享。
清理/重命名这些冲突文件并遵循Lindemann提供的解决方案(https://dev59.com/NGkw5IYBdhLWcg3ws833#12504712)可以解决我的问题。

1

对我有效的方法似乎是构建并运行我的代码,以便它打开模拟器,然后在 Dock 中按住模拟器图标并选择选项 -> 保留在 Dock 中。

之后,我只需关闭模拟器并从 Dock 中启动它,然后从模拟器的主屏幕中删除应用程序。

从 XCode 构建和运行应用程序,一切似乎都正常了。


1

对于我来说,Ctrl-Shift-Option-K(与按住 Option 并选择 Product ... Clean Build Folder 相同)一直都很有效。


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