无法在模拟器中运行应用程序

今天,当我尝试在模拟器中运行我的应用程序,它只是告诉我

Unable to run app in Simulator An error was encountered while running (Domain = NSPOSIXErrorDomain, Code = 22) 

错误对话框如下所示:

无法在模拟器中运行应用程序

我尝试了很多东西:

  • 重新启动Xcode
  • 重新启动模拟器
  • 重启
  • 重置模拟器的内容和设置

以上都不是。 而且我看着日志,我发现这些logging与这个问题有关

2014/10/15 9:09:40.964 com.apple.CoreSimulator.CoreSimulatorService [979]:Error Domain = com.apple.CoreSimulator.SimError Code = 146“无法在当前状态下查找:closures”UserInfo = 0x7f96c861d000 {NSLocalizedDescription =无法在当前状态下查找:closures}

2014/10/15 9:09:40.964 Xcode [1983]:[MT] iPhoneSimulator:无法连接到“com.apple.instruments.deviceservice.lockdown”(错误域= com.apple.CoreSimulator.SimError代码= 146“无法在当前状态下查找:closures“UserInfo = 0x7fcf6fc24190 {NSLocalizedDescription =无法在当前状态下查找:closures})

2014/10/15 9:09:40.980 com.apple.CoreSimulator.CoreSimulatorService [979]:Error Domain = com.apple.CoreSimulator.SimError Code = 146“无法在当前状态下查找:closures”UserInfo = 0x7f96c861d000 {NSLocalizedDescription =无法在当前状态下查找:closures}

2014/10/15 9:09:42.351 launchd_sim:assertion failed:13F34:libxpc.dylib + 29453 [75E30F22-514B-3A20-B82C-EDA43AF5C35C]:0x8d

2014/10/15 9:09:42.362 com.apple.CoreSimulator.CoreSimulatorService [979]:无法注册服务com.apple.coreservices.lsuseractivity.simulatorsupport:查找失败com.apple.coreservices.lsuseractivity.simulatorsupport:0x44e

我也发现一些其他人在这里有同样的问题: https : //gist.github.com/bdeshong/2dd90add09b7287a9a85

谷歌search后,没有运气find解决scheme。

这是我的环境信息

  • OSX 10.9.5
  • Xcode 6.0.1
  • iOS模拟器8.0(550.1)

有任何想法吗?

我find了根本原因,我也find了解决办法。 我做的第一件事是确保这与Xcode有关,而不是相对于项目本身的问题。 我试图创build一个新的项目,它工作得很好。 所以我认为是由我的项目中的东西造成的。

我实际上添加了一个resources参考文件夹到我的项目。 所以我认为这个问题与它有关。 但是,即使我从项目中删除了文件夹,问题仍然存在。 最后,事实certificate, resources文件夹可以居住在

  • build立应用文件夹
  • 应用程序文件夹在模拟器

由于Xcode可能只是复制和覆盖目标应用程序包文件夹,所以resources文件夹可能仍然存在于应用程序包文件夹中。 所以删除resources文件夹后,你需要

  • 确保构build被清理
  • 确保模拟器中的应用程序被删除

因为App不能正确启动,那是因为它看起来resources实际上是捆绑结构中的保留文件夹名称。 通过将一个名为resources的文件夹添加到捆绑包中,不知何故破坏了正常的结构。 为了解决这个问题,我把resources的名字改成了app_data ,不pipe它是什么,都起作用了。

我得到了完全相同的错误。 在浏览我的项目信息时,我无意中删除了包标识符; 因此是“ErrorDomain”。

纠正,转到项目数据; 信息; 将捆绑标识符设置为任何内容。 它为我工作。

你正在做的一切正确,但Xcode和Swift仍处于早期阶段,这意味着他们现在是一个小错误。 也许尝试再次重新启动您的Xcode和iOS模拟器。

这可能有几个原因:

  1. 当Instruments试图使用它时,您退出了iOS Simulator.app。
  2. 您在iOS Simulator.app中更改启动的设备,而Instruments正在尝试使用另一个设备。

如果这两种情况都不是这样,请查看〜/ Library / Logs / CoreSimulator / * .log以获取更多有助于debugging的信息,并将其包含在您的问题中。

根本原因在我的情况稍有不同。 在项目文件中,iOS部署目标对于testing目标被设置为8.0,对于主要目标被设置为8.1。 我们在我们的构build服务器上运行带有8.0模拟器的Xcode 6.0.1(6A317),在主构build目标设置为8.1后,所有这些服务器都开始失败。

我不确定目标和testing是否使用了不同的iOS部署目标,或者项目文件中的8.1设置是否与8.0模拟器冲突,但是正是这种改变打破了几台机器上的模拟器。

不幸的是,在项目中将iOS部署目标设置回8.0后,仍然需要重新安装Xcode(我也删除了〜/ Library / Developer / Xcode目录)才能将模拟器返回到function状态。

我也一样 我只是强迫退出xcode和模拟器,然后为我工作。

检查您的/private/tmp文件夹是否具有适当的权限,对所有用户应该是可写的和可执行的。