Xcode 4在目标设备上说“完成运行<我的应用程序>” —什么也没发生


223

该应用程序既无法安装也无法在我的设备上运行。所有供应配置文件都是最新的。我已经尝试删除并重新安装它们。

状态栏显示Xcode正在构建我的项目,然后说正在运行我的项目,然后说“完成运行”。在整个过程中,iPod屏幕保持黑色。在管理器中检测到iPod,但我没有发现它的配置有任何问题。几天前,使用Xcode 3一切都运行良好。

它在模拟器上不起作用,但是可能需要注意,在模拟器中,它似乎卡在了“附加到”上,并且模拟器拒绝启动。


1
如果您使用其中一个xcode模板创建了一个全新的项目,并尝试在模拟器或设备中运行它,它将起作用吗?我正在尝试确定xcode的安装/配置是否损坏,或者您询问的应用程序中的某些内容是否在影响行为。
kennbrodhagen 2011年

2
创建了一个新的项目模板,它可以正常工作。因此,现在我们知道在我的项目中必须配置错误。
D-Nice

D-Nice,您解决过这个问题吗?我的游戏遇到了同样的问题,我无法终生解决。
亚当·约翰逊

Answers:


268

对于那些阅读有关Xcode 4.2并尝试在较早的设备(例如iPhone 3G,2G,iPod 1st gen等)上运行的人,我有另一种解决方案。默认情况下,在Xcode 4.2中创建的新项目在“必需的设备功能”中指定“ armv7”。如果要支持运行armv6的设备(例如iPhone 3G),则需要删除它。

在此处输入图片说明

从yourProjectName-Info.plist中的“必需的设备功能”中删除armv7

您可能还需要更改构建设置以使用armv6而不是armv7进行编译。

这是默认值:

在此处输入图片说明

双击“标准(armv7)”以添加另一个,然后在弹出窗口中单击“ +”,然后键入“ armv6”:

在此处输入图片说明

单击完成,它应该如下所示:

在此处输入图片说明


1
宾果:为了在我的旧iPhone 3G上正常运行,我必须执行上述两个步骤。谢谢MattyG!
阿里尔·马尔卡

1
太感谢了!如果可以的话,我给你10票。我在浏览此页面上的所有场景时都没有运气。当我升级到XCode 4.3时,必须以某种方式更改该值。
IcyBlueRose

感谢您为详细解释该过程所做的努力。
alekhine 2011年

4
也谢谢我!许多人建议添加'armv6',但是删除 armv7是诀窍!
哈里·伍德

1
“从yourProjectName-Info.plist中的'必需的设备功能'中删除armv7”->谢谢
Oded

43

我只是遇到了这个问题,但是对我来说,这是因为我在体系结构中仅指定了armv7,而3G是armv6。确保两者都有。


那是我的主要原因。很容易忘记它。谢谢。
卢卡斯

5
对于加入“ARMv6的”选项,看到这一点:stackoverflow.com/questions/7488657/...
pauloya

我的旧版iPod Touch也必须是armv6,因为此修复程序也适用。
progrmr

是的,我敢肯定原始的iPhone,3G和前两个iPod touch是armv6。
axiixc 2011年

21

我遇到了这个问题,事实证明XCode将“部署目标”默认设置为4.3,而我的手机是4.2.1。将部署目标更改为4.0似乎可以解决该问题。


正是我想要的。
2011年

当我的设备仅达到5.0.1时将部署目标设置为5.1时,我遇到了这个问题-干杯+1
iOSDude 2012年

12

将“ armv6”添加到项目和目标的体系结构后,请确保在info.plist的“必需的设备功能”部分中没有“ armv7”。如果是这样,只需将其删除即可。


是的,这就是我的情况。不知道armv7的“必需的设备功能”是如何进入plist的。谢谢!
GeneCode 2012年

11

应用程序未在设备上运行,此处存在同样的问题。从设备上删除应用程序无济于事。项目->清理,然后项目->再次运行也无济于事。事实证明,仅退出并重新启动Xcode 4即可解决问题。


9

我也有这个。我已经在info.plist中添加了UIRequiredDeviceCapabilities部分,需要使用游戏套件,并且该应用程序不会复制到运行iOS 4.2的iPhone 3G上。删除了所需的功能,一切都很好。


那么,您应该如何在设备本身上测试需要Gamekit的应用程序呢?
罗布

您仍然会获得GameCenter,而info.plist却没有说明您需要具有该设备的设备。任何运行4.2的设备都具有GameCenter,因此不需要其他info.plist“我需要它!”
格雷厄姆·珀克斯

6

尝试删除设备上的应用程序(就像通常卸载应用程序一样),然后再次从Xcode运行它。除了模拟器无法正常工作外,还帮助我解决了同样的问题。


设备上不再有该应用程序的踪迹。我不再认为这是一个配置问题……项目中有些东西已损坏,但我不知道它可能是什么。
D-Nice

6

地雷案例:我错误地将:必需的设备功能->加速度计设置为NO(在Info.plist中)。只需将其设置回YES

另外:确保必需的设备功能是正确的类型:即布尔值或字符串。错误的类型总是会导致测试失败,并且无法加载应用程序。


4

对于那些仍在挣扎的人,我要做的另一件事是使目标产品的名称与Debug和Release配置相同。它一直在“运行”我没有构建的Debug版本。


4

添加armv6架构为我解决了这个问题。


这是给我的;Xcode的新版本决定从“体系结构”构建设置中删除armv6,因此您需要手动将其重新添加

2

有时也会发生在我身上。进行清理(产品菜单->清理)并运行(项目菜单->运行)始终可以解决问题。


谢谢!这种情况经常发生。每次我尝试新的东西!这是Xcode中的错误吗?
Namratha 2012年

2

我遇到了同样的问题:将项目从xcode3迁移到xcode4,并且在构建应用程序后,xcode不想在手机上安装并启动该应用程序。

我的解决方案(对我有用)是:

  • 编辑您的方案(可以运行)
  • 在左侧列表中,选择“运行xyz.app”
  • 在信息选项卡下的“可执行文件”中,我选择了“ .app”。通过浏览到构建目录并选择您的应用来更改此设置。

为我工作,从现在开始,我可以使用:“产品->执行操作->不构建即可运行”,用于运行最新版本。这样就比按“运行”快得多,因为不会执行任何构建操作。


没有我的构建目录?奇怪的。
山姆·贾尔曼


0

项目和目标的构建设置不同。我只要在两个部分的“构建产品路径”和“中间构建文件路径”上按suppr,就可以解决我的问题。


0

我在使用Cocos2D的游戏项目中遇到了同样的问题。模板中的“ Hello world”运行良好,我的项目在模拟器中运行良好,但在设备上运行失败,并显示消息:“ Finished running”。

我已经用模板中的第一个替换了项目中的Info.plist,它对我有用!


0

转到最新的Xcode版本时,我在两个不同的应用程序中经历了两次。第一次,有效的方法是使用GCC LLVM编译器编译应用程序。第二次,有效的方法是将armv6架构重新添加为受支持的架构,因为Xcode自动更新项目时已将其删除。


0

我通过将Info.plist中的“加速度计”从“否”更改为“是”来解决此问题。

Apple的“ 信息属性列表密钥参考”说,如果“您的应用程序仅检测到设备方向更改,则可以完全删除”“加速度计”设置。


您的应用程序支持加速度计吗?
mac

0

我的解决方案是将添加UIInterfaceOrientationPortraitUISupportedInterfaceOrientationsInfo.plist中的数组,即使我的应用不支持纵向。


0

名为“应用程序需要iPhone环境”的字段已以某种方式进入了我的列表。我删除了,瞧!它运行在我的iPod上。


0

我的Info.plist的目标成员资格设置为构建目标。从目标成员资格中删除它可以解决此问题。


0

我为Info.plist使用了替代名称,但没有Info.plist File在目标上正确设置构建设置。我通过查看应用程序捆绑包并发现它不包含Info.plist来发现了这一点。


0

确保部署目标版本为您的设备上的iOS版本。这就是我解决这个问题的方法。


0

我大约有45分钟遇到了同样的问题。清理无济于事,重新创建项目无济于事,arm版本无济于事。我打开了一些以前从未看到的“无法同步到iTunes”消息。单击确定似乎已经解决了问题:(


0

XCode可以构建,运行和完成,但是该应用无法部署,甚至没有复制到设备上。

实际上,XCode项目中应该有一些损坏的东西。最好的办法是从头开始构建一个新项目。别忘了像以前的文章中所述添加armv6支持。

这对我来说很有效!


0

这是我尝试在设备上运行watchOS应用程序时发生的,因为我的Apple Watch的watchOS版本高于我当前安装的Xcode支持的版本。我升级到了最新的Xcode(这也要求我升级到最新的macOS),然后运行良好

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.