Xcode突然停止在硬件上运行项目:“无法启动xxx.app:..没有这样的文件..” [关闭]
Posted
技术标签:
【中文标题】Xcode突然停止在硬件上运行项目:“无法启动xxx.app:..没有这样的文件..” [关闭]【英文标题】:Xcode suddenly stopped running project on hardware: "Could not launch xxx.app: .. No such file.." [closed] 【发布时间】:2012-07-12 16:24:51 【问题描述】:Xcode 已停止运行我的应用程序,它在我从设备中删除它并尝试通过在 Xcode 中重新运行它来重新安装后直接启动(我以前做过数百次)。
它说
“无法启动 XXX.app”
“没有这样的文件或目录(/Users/Mylaptop/Library/Developer/Xcode/DerivedData/MyApp-ekxcbebfpzkahtfkujyqkcwprzia/Build/Products/Debug-iphoneos/MyApps.app/MyApp)。”
我重新启动了手机,重新启动了 Xcode,清理了所有内容,重建了所有内容。此错误消息不会消失。
这是与 Xcode 4.5 一起使用的,自从它可用以来,我一直在使用它,如果我恢复到 4.3.2,那么 Xcode 会说“已完成运行应用程序”,但它实际上并没有做任何事情 - 应用程序既没有安装也没有运行.
我完全卡住了 - 无法再在设备上运行任何东西了。
有什么建议吗?
【问题讨论】:
转到您的 xcode 中的管理器,按项目选项卡并删除项目的派生数据并清理项目并再次构建它.. 这样做后仍然得到同样的结果。我会尝试重新安装 Xcode。 我认为您在构建设置中更改了路径以在设备中运行您的应用 我发现它是什么 - 在向 info.plist 添加设备功能时,我不知何故添加了一个新行,但没有给它一个值。 虽然删除派生数据最终对我有用,但直到我重新启动 iPad 和 OS/X,在使用 Finder 删除派生数据后清空垃圾箱并删除了 BLE通过 USB 端口连接的外围设备。我不知道需要哪些步骤——XCode 后来在附加 BLE 外设的情况下编译——但是一旦添加了所有这些步骤来删除派生数据,项目就编译好了。 【参考方案1】:这真的很烦人。此错误发生在许多不同的情况下。有时重新启动 Xcode 可以解决问题。如果没有,请按照以下步骤操作:
断开您的设备。
从您的设备中删除该应用。
退出 Xcode(不要只是简单地关闭窗口,退出它)
删除派生数据文件夹(~/Library/Developer/Xcode/DerivedData/-gbrvhlvwmpiobxdujegtghggrffp
- 或类似的东西)
现在再次启动 Xcode,连接设备并运行项目。它应该可以正常工作。
来自 DhilipSiva blog
【讨论】:
这对我来说是关键。欣赏答案的详细程度。 在这个平台上工作时“非常烦人”的事情之一 不工作...我正在设备上运行 上述步骤没有解决问题。我仍然收到“无法运行 。 未找到”。 为我工作,试试这个【参考方案2】:尝试删除 -Info.plist 文件中的“所需设备功能”。
你不能在 3G 上要求 armv7,你也不能在任何较新的设备上要求 armv6,所以完全删除这个属性。
【讨论】:
这是唯一对我有用的解决方案。已经尝试刷新证书,清理文件夹重新启动设备,xcode 和 mac 没有任何帮助。只需删除该属性即可安装并正常工作。 这个解决方案也对我有用 - 奇怪的错误。 我还必须确保设置中的有效架构包括 armv6、armv7 和 armv7s(我现在使用的是 XCode 4.5……我知道这已经有几个月了,但值得一提。 ) 此外,这三个也应列在架构部分。 试过了,没有任何乐趣,但 Sudhakar + Jagger 的答案有效。 Xcode 4.5.1 和 iPad1 这对我来说是个问题:我的应用程序将“电话”作为必需功能,而我试图在仅支持 WiFi 的 iPad mini 上运行该应用程序。【参考方案3】:我找到了答案。 ios 部署目标的版本与我设备的操作系统版本不同。
【讨论】:
也为我做了。出于某种原因,XCode 总是想将我的项目的部署目标重置为 6.0。 也对我有用...我将设备类型从“iPhone”更改为“通用”,xcode 自动将目标更改为 6.0,我一开始并没有注意到。切换回 4.3 并且工作正常... 太糟糕了,删除 DerivedData 和所需的设备功能没有帮助,所以我将部署目标从 6.1 设置为 5.0,它在运行 iOS 5.1 的 iPod Touch 上运行。 天哪。我会让同样的失败多少次...... 这是我的解决方案【参考方案4】:首先尝试使用 info.plists 并删除派生数据、清理等。
我的解决方案:退出 XCode,重新打开项目。转到 Finder 中的派生数据。已删除所有项目的数据(都是可回收的,但我会先尝试删除您有问题的项目数据)。然后它又起作用了。从 XCode 中删除派生数据不起作用。
【讨论】:
派生数据文件夹路径:/Users/以下解决了我的问题...我的应用在调试/发布中为我工作,然后我构建了一些临时存档并且调试/发布版本停止工作。
症状:
从 Xcode 启动到设备时出现无效权利错误(使用权利播放...) 运行模拟器时立即中止(完成运行) 从 Xcode 启动到设备时找不到...目录 blabla.../build/product/debug-iphoneos/...。最终在尝试从其他人的痛苦中受益之后,我在 Targets [AppName] 中找到了:
Build Settings
Build Locations
Build Products Path build
应该是
Build Products Path build/Products
不知道这是如何设置错误的。 这必须在 Xcode/Springboard 的某个地方进行硬编码,因为“产品”同时出现在 Xcode 和设备控制台中。 这是 Xcode 4.5.1。
【讨论】:
你能格式化一下,让意思更清楚一点吗?不清楚应该如何输入。 哇,非常感谢基思。经过 4 个令人沮丧的小时后,事实证明这就是原因。它究竟是如何改变的,我无法理解。 是的,它解决了我的问题,但为什么会发生这种情况?!【参考方案6】:我解决了这个问题
重命名我的 XCode 项目上方的目录
在XCode
中更改项目名称已为我解决了这个问题。
在
XCode
中,在项目导航器下,单击项目名称,它应该可以让您像在Finder 中的文件一样重命名它。删除派生数据没有帮助。
【讨论】:
那是为我做的,由于某种原因,当我在项目名称中有一个空格时它失败了。重命名为无空格,运行良好。【参考方案7】:我用 CMake 构建了我的 XCode 项目,但不知何故,它(或我愚蠢的自己)删除或清空了 info.plist 中的“可执行文件”属性。我将它设置回 $EXECUTABLE_NAME 并且它再次工作。
我花了很多时间研究所有的建议和修复,直到我最终发现了这个问题。
希望这能帮助那些在同样问题上苦苦挣扎的人
编辑:
CMake 在某种程度上弄乱了我的 plist 文件。我创建了自己的 Info.plist 并按以下方式使用它:
SET_TARGET_PROPERTIES( MyApp PROPERTIES MACOSX_BUNDLE_INFO_PLIST $CMAKE_CURRENT_LIST_DIR/MyApp.plist )
在我的 plist 中,我有这个条目:
<key>CFBundleExecutable</key> <string>$EXECUTABLE_NAME</string>
不幸的是,CMake 似乎仍然解析该文件并将 $EXECUTABLE_NAME 替换为空字符串,因为它是 CMake 变量语法。我的快速解决方法如下:
SET( EXECUTABLE_NAME "\$EXECUTABLE_NAME" )
现在它就像一个魅力。
可能只有我一个人遇到这个问题,但谁知道呢。
【讨论】:
不错。我不小心删除了我的 .plist 文件,这是我需要再次添加的属性之一。谢谢set(EXECUTABLE_NAME "\$EXECUTABLE_NAME")
正是我所需要的。我在我的 ios 工具链文件的底部添加了这一行,它完美地修复了它。非常感谢!【参考方案8】:
我遇到了同样的问题,但在我的情况下,我的 info.plist 中有错误的要求(iPhone 3G 需要陀螺仪)
【讨论】:
【参考方案9】:我试图在与开发项目不同的系统上运行我的项目。我收到“无法启动 xxx.app:.. 没有这样的文件..”。
从设备中删除了该应用程序,然后从该应用程序的 xcode 中的管理器中删除了派生数据。 组织者-->项目-->派生数据-->删除
我的问题已经解决了。
【讨论】:
【参考方案10】:您需要将部署目标设置为低于您设备的版本
【讨论】:
【参考方案11】:对我来说,解决方案就是使用正确的(非分发)配置文件。
我默认始终使用我的临时配置文件,但后来我改为使用我的开发人员配置文件(团队配置文件)并且解决了问题。为了安全起见,我继续清理了派生数据目录,但我不确定是否需要它。
XCode 曾经有一个警告,告诉您使用正确的配置文件,但该错误消息似乎在 XCode 4.5 中消失了。
【讨论】:
这当然是一个失败和修复的集合,显然很多 XCode 失败都归结为这个无用的错误消息。这一次,对于我们以及下面的其他一些,它似乎是由证书/签名/配置文件问题引起的,折腾一些旧的过期的,并确保我在任何地方都使用相同的配置文件,(就像下面的 Jabolcnik ,我有几个开发帐户,我的雇主和我自己的。)允许 XCode 在设备上运行应用程序。【参考方案12】:我通过一个非常奇怪的解决方案遇到了这个问题。
我的问题略有不同,因为我在钥匙串中有 2 个开发人员证书。我们有两个开发者帐户(比如说 AD 和 BD)。
1) 我确实将 Bundle 标识符从 com.BD.game 更改为 com.AD.game 2) 我遇到问题的设备仅在 AD 配置文件中登录。 3) 我无法在 iPad 上调试游戏 - 尽管设备有有效的配置文件,我有有效的证书,我重新启动了 Mac、设备、重新安装了 Xcode……没有任何帮助。
我今天所做的是检查 project.pbxproj 文件中是否有任何奇怪的条目。
我发现 Xcode 使用了正确的配置文件,但使用错误的证书签署了 ipa/app。
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: **BD** (XX******)";
在我手动更正名称和 ID 后;一切都像魅力一样。
【讨论】:
【参考方案13】:我遇到了同样的错误。在我的情况下,我将部署目标设置为 6.1 并尝试运行 iOS 5.1 iPad。当我将部署目标更改为 4.3 时,问题解决了。
还是有问题。试试这个 断开您的设备。 从您的设备中删除该应用程序。 退出 xcode。 现在启动 Xcode,连接设备并运行项目。它应该可以正常工作。
【讨论】:
【参考方案14】:对我来说(使用 IOS 7 和 Xcode 5),当我在 Organizer 中使用我的设备“添加到会员中心”后,错误立即消失了。
【讨论】:
这有帮助。但是,在那之后我需要重新启动设备以消除错误。【参考方案15】:我想提一下,在 Finder 中打开 DerivedData 文件夹的最简单方法如下:
-
打开管理器。
点击“项目”。
选择有问题的项目。
在 DerivedData 的路径旁边,单击向右的小箭头按钮。
删除 DerivedData 文件夹的内容对我有用。而不是使用“删除...”按钮,您应该更成功地通过 Finder 手动删除文件。
【讨论】:
【参考方案16】:转到:您的项目目标 - > 信息并从自定义 iOS 目标属性中删除所需的设备功能。 在我的例子中是 armv7 和 armv7s。
之后,该应用程序在我的 iPhone 4 上成功构建。
This is how it looks after i removed both of requirements
【讨论】:
我看到了同样的问题,该应用程序第一次会在我的 5S 上运行,但以后不会运行,结果我的所需设备功能设置为“armv7”,将其从信息 plist 中删除已修复【参考方案17】:对我来说,我忘记了 info.plist 的“所需设备功能”中有“电话”。删除了它,它终于在我的 iPad 上运行了。
【讨论】:
【参考方案18】:对我来说,重启 Xcode,清理 DerivedData 和重启设备在大多数情况下是不够的,直到我发现 iTunes 也在运行,退出 iTunes 后一切正常!
所以我现在的步骤很简单:
1.退出 Xcode。2.如果 iTunes 正在运行,请退出 iTunes。3.重新打开项目。
无需从设备中删除应用、清理项目或重启/断开设备。 我认为这是因为 Xcode 和 iTunes 使用了一些通用库(如您所知,Xcode Installer 在安装 iOS SDK 时总是要求退出 iTunes)。
【讨论】:
【参考方案19】:我遇到了这个问题并尝试了一些对我不起作用的建议 - 然后我找到了关于在 -Info.plist 文件中删除“所需设备功能”的建议(对我来说包括 location-services & 全球定位系统) 那行得通! 然后我重新添加了它们,它仍然有效..去图。 这是 xCode 4.6.1,我的应用是 Phonegap/Cordova 的开发人员
【讨论】:
我还在那里找到了空字符串,它阻塞了管理器!感谢您的提示!【参考方案20】:我尝试了以上所有方法,但仍然无法运行。我通过更改派生的构建位置解决了这个问题。文件>项目设置>“派生数据位置”更改为项目相关。或者您可以确保默认路径具有读/写权限。
【讨论】:
【参考方案21】:我的问题似乎是在我的 plist 中选择“支持的界面方向”中的“纵向”(顶部主页按钮)作为第 0 项。删除它或将其向下移动似乎可以解决我的问题。去图吧。
【讨论】:
【参考方案22】:我的 iPhone 上只有 Xcode 4.5 的通用应用程序也有这个问题,我有两个调试设备:
iPhone 4 iOS 5.1.1
iPad 1 iOS 5.1.1
Info.plist 在“所需设备功能”下有一个空条目 我知道我没有输入这个空的“项目 0”。该应用程序在 iPhone 上加载 因为我删除了空项目。我没有遇到 这个问题在几个早期版本的 Xcode 中的任何一个上, 这意味着 Xcode 4.5 以不同方式处理这个“插入”项 对于我使用的两个设备。我以前错了,但这似乎 就像 Xcode 4.5 中的一个错误。
【讨论】:
【参考方案23】:这似乎很明显,但您还必须将部署目标设置为您的设备正在运行的操作系统。
因此,如果您升级到 iOS 6,它会将您的部署目标设置为 iOS 6。如果您正在测试的设备仍运行 5.1,则您需要部署到 5.1。
【讨论】:
【参考方案24】:我的问题终于通过检查以确保我的project.pbxproj
文件的/* Begin PBXNativeTarget section */
部分中的productName
属性与name
属性匹配而得到解决。
一旦编辑它以使它们相同,Xcode 终于可以在我的设备上正确运行该应用程序了!
感谢 Max Weisel 帮助我! :D
【讨论】:
【参考方案25】:删除派生数据文件夹对我没有帮助。 使用 Xcode 4.4.2,唯一 解决方案是打开 Organizer 并删除 iDevice 上旧的过期和无关的配置文件。然后一切都再次完美运行。
【讨论】:
这当然是一个失败和修复的集合,显然很多 XCode 失败在这个无人区发生。【参考方案26】:这可能是一个红鲱鱼,但我在删除默认图像之前添加自定义启动图像时遇到了这些问题。删除默认启动和自定义图像,然后重新添加自定义图像为我修复了它。我正在使用 iOS 6 和 Xcode 4.5.2
【讨论】:
【参考方案27】:似乎有一些不同的事情会导致这个非常有用的错误消息。
对我来说,这归结为 Info.plist 中的“所需设备功能”不正确。我错误地添加了一个空白数组项(在架构之上,armv7)。 删除了空白数组项,现在一切正常!
【讨论】:
【参考方案28】:我遇到了这个问题,除了: 我的问题是在更改 info.plist 的内容后开始出现的,并且没有恢复帮助。
为我解决的问题是:
-
在一个全新的项目中创建一个 vanilla info.plist
用新的替换旧的 info.plist
重命名(如 app_info.plist)
将 Build Settings/Packaging/INFOPLIST_FILE 设置为新的。
对项目进行所需的所有更改
希望对您有所帮助。我尝试了这里建议的所有其他方法,这是我唯一的解决方案。
【讨论】:
【参考方案29】:面临同样的问题,但现在问题解决了,我删除了Executable file
info.plist。我将它设置回 $EXECUTABLE_NAME 并且它再次工作.. :)
【讨论】:
【参考方案30】:在我的情况下,我只是将 777 权限直接设置为 xxx.app 文件夹以供所有文件使用!
【讨论】:
以上是关于Xcode突然停止在硬件上运行项目:“无法启动xxx.app:..没有这样的文件..” [关闭]的主要内容,如果未能解决你的问题,请参考以下文章