从xcode3切换到xcode4 – 无法加载程序到旧的iPod Touch上

可能重复:
iPhone应用程序不能在旧设备上运行(3G,3GS,…)

我有类似的问题( iPhone应用程序不能在旧设备(3G,3GS,…)上运行 ),但该页面上的解决方法不为我做任何事情。 我一直在XCode3上开发iOS应用程序,并在运行iOS 4.2.1的旧版第二代iPod Touch上进行testing。 一直试图使用XCode4代替最后几天。

我能够使用模拟器在XCode4下创build和运行应用程序,这两个应用程序最初都是在XCode3下开发的,还有全新的XCode4创build了“Hello World”types的应用程序。 但是,当我试图把它放在实际的硬件上时,它会以很less的错误消息的方式失败。 XCode4中的debugging窗口不显示任何错误。 XCode顶部中间的活动/状态指示器从“Building [AppName]”直接到“Finished Running [AppName]”,但该应用程序从未在设备上传输或运行。

如果我通过Organizer查看iPod的控制台,则会看到一些错误,如:

Thu Jun 16 15:17:56 unknown lockdownd [16] <Error>:2ff68000 handle_connection:无法从Xcode接收USB消息#6。 杀死连接

星期四六月16 15:17:56未知com.apple.mobile.lockdown [16] <注意>:收不到留言的大小

我猜这跟这个有关系 我试过拔掉所有其他USB设备从我的Mac,但没有任何区别。 试图重新启动设备和Mac,但再次没有区别。

我调整了iOS部署目标为4.2,所以我不认为有任何问题。 设备在“pipe理器”中显示绿点和有效的未过期configuration文件。 在代码签名属性下,它看起来像:

Code Signing Entity Don't Code Sign Debug Don't Code Sign Any iOS SDK iPhone Developer (currently matches...[profile I have installed]) Release Don't Code Sign Any iOS SDK iPhone Developer (currently matches...[profile I have installed]) 

设备本身在“scheme”下拉列表中显示为:

[DeviceName](4.2.1覆盖Base SDK到5.0)

任何人遇到类似的问题或有任何build议?

只是为了促进托马斯评论的答案,这可能是由您的设备不支持的CPU架构的目标造成的。 iPhone和iPhone 3G(以及同一代的iPod touch)不支持armv7。 将“Archiectures”构build设置为包含“armv6”以确保生成的二进制文件包含armv6代码。

我有与XCode 4.1.1和Ipod触摸第二代相同的问题。 我从一个模板开始,不能在我的硬件上运行它。 在stackoverflow上find所有的答案,但最好在一个地方有所有必要的步骤:

  1. 您必须在项目设置(“生成设置”选项卡)中将ARMv6添加到架构。 你可以将它设置为“armv6 $(ARCHS_STANDARD_32_BIT)”或“armv6 armv7”,没关系。 $(ARCHS_STANDARD_32_BIT)只是一个variables,在最新的XCode中等于“armv7”。

  2. 不要更改基本SDK,“最新的iOS(iOS5.0)”是好的。 在“摘要”下,将“部署目标”更改为4.0或任何您希望作为最低版本的iOS版本。

  3. Xcode 4中的新模板在Info.plist中有一个标准设置,您必须更改。 search“需要的设备function”并删除“armv7”。

如果您正在执行步骤1 + 2,但忘记了步骤3,则会在设备日志中看到“无法接收USB消息”错误,而在XCode中则没有错误消息。 为什么这样做,而不是向您显示一个错误消息,提示您“所需的设备function”是一个不同的问题。

简而言之:苹果公司在iOS 4.3的升级版本中开始放弃对armv6平台的支持。 较新的硬件使用不同的指令集armv7运行。 如果你想用XCode 4支持iOS 4,你应该确保你也可以用上面的步骤正确地构build你的armv6项目。

看起来你已经安装了iOS 5.0 SDK。 我正在阅读吗? 如果是这样,这是由苹果开发者保密协议,不应该在这里讨论。 我会在开发者论坛上发帖。

你是否有其他运行4.2.1的设备可以与你安装的Xcode一起工作? 你有没有其他的设备可以使用你的Xcode安装?

请注意,显然架构设置是区分大小写的。 我手动添加“Armv6”,没有任何工作。 改变这个'armv6'做了伎俩。