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

时间:2014-10-16 04:20:19

标签: ios xcode ios-simulator

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

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

错误对话框如下所示:

Unable to run app in Simulator

我尝试了很多东西:

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

以上都不适用。我查看了日志,我发现这些记录与此问题有关

  

2014/10/15 9:09:40.964 com.apple.CoreSimulator.CoreSimulatorService [979]:错误Domain = com.apple.CoreSimulator.SimError Code = 146"无法在当前状态下查找:关机&# 34; UserInfo = 0x7f96c861d000 {NSLocalizedDescription =无法在当前状态下查找:关机}

     

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

     

2014/10/15 9:09:40.980 com.apple.CoreSimulator.CoreSimulatorService [979]:错误Domain = com.apple.CoreSimulator.SimError Code = 146"无法在当前状态下查找:关机&# 34; UserInfo = 0x7f96c861d000 {NSLocalizedDescription =无法在当前状态下查找:关机}

     

2014/10/15 9:09:42.351 launchd_sim [2047]:断言失败: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

在谷歌搜索后找不到解决方案。

这是我的环境信息

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

有什么想法吗?

8 个答案:

答案 0 :(得分:17)

我找到了根本原因,我也找到了解决方案。我做的第一件事就是确保这与Xcode有关,而不是与项目本身有关的问题。我试图创建一个新项目,它工作得非常好。所以我认为这是由我项目中的某些事情引起的。

我实际上在项目中添加了resources引用文件夹。所以我认为这个问题与它有关。但是,即使我从项目中删除了该文件夹,问题仍然存在。事实证明,resources文件夹可以存在于

  • 内置应用文件夹
  • 模拟器中的App文件夹

由于Xcode可能只是复制并覆盖目标应用程序包文件夹,因此{bundle}文件夹中的resources文件夹可能仍然存在。因此,删除resources文件夹后,您需要

  • 确保构建已清除
  • 确保模拟器中的应用已删除

由于无法正确启动应用程序,因为它显示resources实际上是bundle structure中的保留文件夹名称。通过在包中添加名为resources的文件夹,以某种方式破坏了正常结构。为了解决这个问题,我将名称从resources更改为app_data,或者无论它是什么,都可以正常工作。

答案 1 :(得分:1)

你正在做的一切都是正确的,但Xcode和Swift仍然处于早期阶段,这意味着他们现在有点小马车。也许再试一次重启你的Xcode和iOS模拟器。

答案 2 :(得分:1)

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

纠正,转到项目数据;信息;将包标识符设置为它是什么。它对我有用。

答案 3 :(得分:0)

出现这种情况有几个原因:

  1. 当Instruments试图使用它时,你退出了iOS Simulator.app。
  2. 您在iOS Simulator.app中更改了启动的设备,而Instruments正在尝试使用另一个。
  3. 如果不是这种情况,请查看〜/ Library / Logs / CoreSimulator / * .log以获取可能有助于调试的更多信息,并将其包含在您的问题中。

答案 4 :(得分:0)

我案中的根本原因略有不同。在项目文件中,iOS部署目标对于测试目标设置为8.0,对于主目标设置为8.1。我们在构建服务器上运行了带有8.0模拟器的Xcode 6.0.1(6A317),在主构建目标设置为8.1后,所有模拟器都开始失败。

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

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

答案 5 :(得分:0)

我也一样。我刚刚强制退出xcode和模拟器然后为我工作。

答案 6 :(得分:0)

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

答案 7 :(得分:-1)

清除所有文件 的 /用户/ XXXXX /库/开发商/ CoreSimulator /设备

重新启动Xcode和Simulator。

现在它会起作用。