Xcode突然停止在硬件上运行项目:“无法启动xxx.app:..没有这样的文件。。”


139

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会说“ Finished running app”,但实际上并没有执行任何操作-该应用既未安装也未运行。

我完全被卡住了-无法再在设备上运行任何东西。

有什么建议?


4
转到组织者在您的Xcode,按项目选项卡,并删除得出的数据为您的项目和清洁项目,然后重新构建它..
迪内希拉贾

2
这样做之后仍然得到相同的东西。我将尝试重新安装Xcode。
Gruntcakes

我认为您已更改了在设备中运行应用程序的路径中的构建设置中的某些内容
Dinesh Raja

9
我发现它是什么-在将设备功能添加到info.plist时,我以某种方式添加了新行,但没有赋予它任何值。
Gruntcakes

1
尽管删除派生数据最终对我有用,但直到我重新启动iPad和OS / X,使用Finder删除派生数据后清空废纸and,以及卸下通过USB端口连接的BLE外围设备,这才有所帮助。我不知道需要执行哪些步骤-稍后在XCode上附加了BLE外设进行编译-但是一旦添加了所有这些步骤以删除派生数据,项目就可以正常编译了。
Mike

Answers:


125

真烦人。在许多不同情况下都会发生此错误。有时重新启动Xcode,可以解决此问题。如果不是,请按照下列步骤操作:

断开设备连接。

从您的设备中删除该应用。

退出Xcode(不要只是简单地关闭窗口,退出它)

删除派生数据文件夹(~/Library/Developer/Xcode/DerivedData/-gbrvhlvwmpiobxdujegtghggrffp -或类似的东西)

现在再次启动Xcode,连接设备并运行项目。它应该工作正常。

来自DhilipSiva 博客


4
这是我的关键。欣赏答案中的详细程度。
杰森·帕拉克

在此平台上工作时,只有“真正令人讨厌”的事情之一
rushinge 2013年

2
无法正常运作...我正在装置上执行
Rajneesh071

上述步骤不能解决问题。我仍然收到“无法运行<app>。找不到<App>”。
user298261 2013年

为我工作,试试这个
Muhammad Waqas

57

尝试删除-Info.plist文件中的“必需的设备功能”。

您不需要在3G上使用armv7,也不能在任何较新的设备上使用armv6,因此只需完全删除此属性。


2
这是唯一对我有用的解决方案。已经尝试刷新证书,清理文件夹,重新启动设备,xcode和mac,但无济于事。只需删除该属性,它就可以安装并正常工作。
Automaticoo

1
这个解决方案也对我有用-奇怪的错误。
misnomer 2012年

我还必须确保设置中的有效体系结构包括armv6,armv7和armv7s(我现在使用的是XCode 4.5。在“架构”部分中也是如此。
大卫·莫顿

试过这个,没有什么快乐,但Sudhakar + Jagger的答案奏效了。Xcode 4.5.1和iPad1
mm2001年

这对我来说是个问题:我的应用程序具有“电话”功能,而我正在尝试在仅WiFi的iPad mini上运行该应用程序。
chitza 2013年

38

我找到了答案。iOS部署目标的版本与设备的OS版本不同。


也为我做了。由于某些原因,XCode始终希望将项目的部署目标重置为6.0。
唐纳德·伯

3
也为我工作...我将设备类型从“ iPhone”更改为“ Universal”,并且xcode自动将目标更改为6.0,但我一开始没有注意到。移回4.3并开始运作...
Jim Jose

不幸的是,删除DerivedData和所需的设备功能无济于事,因此我将部署目标从6.1设置为5.0,并且它可以在运行iOS 5.1的iPod Touch上使用。
理查德·阿尔滕堡

哦,天哪。我要失败
几次

这是我的解决方案
GeorgeBuckingham

13

首先使用info.plists尝试了上述方法,并删除派生数据,清除等。

我的解决方案:退出XCode,重新打开项目。转到Finder中的派生数据。所有项目的已删除数据(全部可删除,但我会先尝试删除出现问题的项目数据)。然后它再次起作用。从XCode删除派生数据无效。


4
派生数据文件夹的路径:/ Users / <User> / Library / Developer / Xcode / DerivedData /
Pascalius 2012年

这解决了我的问题+删除所有文件夹释放了10 GB的内存,所以加倍感谢:)
thesummersign 2013年

10

以下解决了我的问题...我的应用在调试/发布中为我工作,然后我建立了一些临时存档,调试/发布版本停止工作。

症状:

  • 从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。

屏幕快照,用于设置构建/产品的位置


1
您可以格式化它以使含义更清楚吗?尚不清楚应如何输入。
itsbruce 2012年

1
哇,谢谢一群基思。经过4个令人沮丧的小时,事实证明这是原因。世界上的变化如何超出了我。
karl_ 2012年

1
是的,它解决了我的问题,但是为什么会这样呢?
阿里

7

我解决了这个问题

重命名我的XCode项目上方的目录

更改项目名称XCode对我来说是固定的。

在中XCode的Project Navigator下,单击项目名称,它应该使您像在Finder中的文件一样重命名它。删除派生数据没有帮助。


这样做对我来说是成功的,由于某种原因,当我在项目名称中留有空格时,它失败了。重命名为没有空格,并且可以正常运行。
丽塔

6

我使用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变量语法,CMake似乎仍会解析该文件并用空字符串替换$ {EXECUTABLE_NAME}。我的快速解决方法如下:

SET( EXECUTABLE_NAME "\${EXECUTABLE_NAME}" )

现在,它就像一种魅力。

我可能一个人就是这个问题,但谁知道呢。


真好 我不小心删除了.plist文件,这是我需要再次添加的属性之一。谢谢

set(EXECUTABLE_NAME "\${EXECUTABLE_NAME}")正是我所需要的。我在ios工具链文件的底部添加了这一行,并对其进行了完美修复。谢谢一群!
Deathicon

5

我遇到了同样的问题,但在我的情况下,我的info.plist要求不正确(iPhone 3G需要陀螺仪)


4

我试图在不同于开发项目的系统上运行我的项目。我收到“无法启动xxx.app:..没有这样的文件..”。

从设备中删除了该应用程序,然后从该应用程序的xcode中从管理器中删除了派生数据。组织者->项目->派生数据->删除

我的问题解决了。



4

对我来说,解决方案是仅使用正确的(非分发)供应配置文件。

我默认情况下始终使用我的临时配置文件,但是后来我改用了我的开发人员文件(团队文件),从而解决了问题。为了安全起见,我继续清理了“派生数据”目录,但是我不确定是否需要它。

XCode曾经有个警告,告诉您使用正确的配置文件,但是该错误消息似乎在XCode 4.5中消失了。


这当然是失败和修复的全部,显然,许多XCode失败会导致这种无益的错误消息。这次,对我们来说,以下是更多原因,这似乎是由证书/签名/配置文件问题引起的,将一些过期的旧文件扔掉,并确保我在各处都使用相同的配置文件,(如下面的Jabolcnik ,我有几个开发帐户,我的老板和我自己的。)允许XCode在设备上运行该应用。
Taryn

4

我通过一个非常奇怪的解决方案遇到了这个问题。

我的问题略有不同,因为我在Keychain中拥有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之后;一切都像魅力。


4

我遇到了同样的错误。就我而言,我将部署目标设置为6.1,并尝试运行iOS 5.1 iPad。当我将部署目标更改为4.3时,问题解决了。


仍然有问题。尝试执行此操作断开设备连接。从您的设备中删除该应用。退出xcode。现在启动Xcode,连接设备并运行项目。它应该工作正常。


4

对我来说(使用IOS 7和Xcode 5),在管理器中对设备执行“添加到会员中心”后,错误消失了。


这有帮助。但是,在此之后,我需要重新启动设备才能消除错误。
弹跳

3

我想提一下,在Finder中打开DerivedData文件夹的最简单方法是:

  1. 打开管理器。
  2. 点击“项目”。
  3. 选择有问题的项目。
  4. 在DerivedData的路径旁边,单击小右箭头按钮。

删除DerivedData文件夹的内容对我有用。与其使用“删除...”按钮,不如通过Finder手动删除文件,应该会更成功。


3

转到:您的项目Target-> Info,然后从CustoM iOS Target属性中删除所需的设备功能。就我而言,这是armv7和armv7s。

之后,该应用程序已成功在我的iPhone 4上构建。

这是我删除两个要求后的样子


我看到了同样的问题,该应用程序将在我的5S上第一次运行,但随后没有运行,结果证明我的“必需设备功能”设置为“ armv7”,并从信息列表中删除了该内容
Cam Saul

2

对我来说,我忘记了info.plist中“必需的设备功能”中有“电话”。删除了它,终于在我的iPad上运行了。


2

对于我来说,重新启动Xcode在大多数情况下还不够清洗DerivedData和重新启动设备,直到我确定iTunes也正在运行,并且退出iTunes后一切正常!

所以我的步骤很简单:

1.退出Xcode。
2.如果iTunes正在运行,请退出iTunes。
3.重新打开项目。

无需从设备中删除应用程序,清理项目或重新启动/断开设备。我认为这是因为Xcode和iTunes使用一些常见的库(如您所知,Xcode安装程序总是在安装iOS SDK时要求退出iTunes)。


2

我遇到了这个问题,并尝试了一些对我不起作用的建议-然后我在-Info.plist文件中找到了有关删除“必需的设备功能”的建议(对我来说,这包括location-services和gps)可行!然后,我重新添加了它们,它仍然起作用..去图。这是xCode 4.6.1,我的应用是由Phonegap / Cordova开发的


我还在那里发现了空字符串,它正在阻塞组织器!谢谢你的提示 !
PetrV

2

我尝试了以上所有方法,但仍然无法运行。我通过更改派生的生成位置解决了该问题。文件>项目设置>“派生数据位置”更改为相对于项目。或者,您可以仅确保默认路径具有读取/写入权限。


1

我的问题似乎是在我的plist中的“支持的界面”方向中选择“肖像”(顶部主页按钮)作为项目0。删除它或将其向下移动似乎可以解决我的问题。去搞清楚。


1

对于仅在我的iPhone上使用Xcode 4.5的通用应用程序,我也遇到了这个问题,其中有两个调试设备:

iPhone 4 iOS 5.1.1
iPad 1   iOS 5.1.1

Info.plist在“必需的设备功能”下有一个空条目,我知道我没有输入此空的“ Item 0”。自从我删除了空项目以来,该应用已加载到iPhone上。我在Xcode的多个早期版本中都没有遇到此问题,这意味着Xcode 4.5对我使用的两个设备以不同的方式处理此“插入”项目。我之前是错的,但这似乎像是Xcode 4.5中的错误。


1

这似乎很明显,但是您还必须将部署目标设置为设备正在运行的操作系统。

因此,如果您升级到iOS 6,它将把您的部署目标设置为iOS6。如果您要测试的设备仍在运行5.1,则需要部署到5.1。


1

通过检查并确保文件部分中的productName属性与/* Begin PBXNativeTarget section */project.pbxprojname属性。

一旦对其进行编辑以使它们相同,Xcode最终将在我的设备上正确运行该应用程序!

感谢Max Weisel对我的帮助!:D


1

删除派生数据文件夹对我没有帮助。使用Xcode 4.4.2的唯一解决方案是打开管理器并删除iDevice上的旧的过期和无关的配置文件。然后,一切又恢复了正常。


这当然是失败和修复的全部,显然,许多XCode失败导致了这个无人区。
Taryn

1

这可能是一条红鲱鱼,但是在删除默认图像之前添加自定义启动图像时遇到了这些问题。删除默认的启动和自定义图像,然后再添加自定义图像,这对我来说已经解决了。我正在使用iOS 6和Xcode 4.5.2


1

似乎有一些不同的情况可以导致此非常有用的错误消息。

对我而言,这是由于Info.plist中的“必需的设备功能”不正确。我错误地添加了一个空白数组项(在体系结构之上,armv7)。删除了空白数组项,现在一切正常!


1

我遇到了这个问题,没有什么真正的帮助,除了:我的问题在更改了info.plist的内容之后开始了,没有任何恢复。

为我解决的是:

  1. 在一个全新的项目中创建一个普通的info.plist
  2. 用新的替换旧的info.plist
  3. 重命名它(如app_info.plist)
  4. 将“构建设置/打包/ INFOPLIST_FILE”设置为新的。
  5. 进行项目所需的所有更改

希望能有所帮助。我尝试了这里提出的所有其他建议,这对我来说是唯一的解决方案。


1

面对同样的问题,但现在问题解决了,我删除了Executable file info.plist。我将其重新设置为$ {EXECUTABLE_NAME},它又可以工作了.. :)

在此处输入图片说明


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.