使用Xcode 4.2和iOS 5 SDK时是否可以定位较旧的iOS版本?

时间:2011-10-13 22:00:51

标签: iphone xcode ios5

我最近刚下载了带有iOS 5 SDK包的Xcode 4.2,我立即注意到我无法将我的iPhone 3Gs与iOS 4.2.1一起用于调试。我只能在安装了iOS 5的iphone 4上进行调试和测试。

对于运行任何低于5.0 Xcode的iOS的任何设备,只需说“完成iPhone3GS的运行”并且不运行它。我的部署目标设置为3.0,因为我没有使用3.0以上的应用程序中的任何功能,我希望能够定位所有版本3.0或更高版本。我安装了所有配置文件并保持最新状态。

我已退出并重新启动xcode,我已多次清理构建。我尝试在archtecture构建设置中添加armv6,但没有任何东西可以让我在ios 4.2.1的旧手机上构建和运行我的应用程序。

我的问题是,是否仍然可以使用适用于低于5的iOS版本的新SDK工作?如果我无法在旧手机上安装我的应用程序,我怎么能确定我的应用程序仍能在较低的iOS版本上运行?

修改 好吧,看起来iOS SDK 5默认支持armv6。您需要做的是在Target和您的Project的Build Settings下的Architectures字段中添加armv6。然后您的应用程序将能够在iPhone 3G设备上运行。 答案可以在这里找到 How to build for armv6 and armv7 architectures with iOS 5

8 个答案:

答案 0 :(得分:152)

我遇到了同样的问题,试图在iPhone 3G 4.2.1上运行一个新创建的Xcode 4.2项目。以下是我能够让它运行的方式。

1)更改目标的“构建设置”==> “建筑”从“标准(armv7)”到“其他”。添加armv6和armv7。

2)更改目标的“构建设置”==> armv6和armv7的“有效架构”。

3)更改目标的“构建设置”==> “iOS部署目标”到iOS 4.2。

enter image description here

4)打开项目* -Info.plist,删除“必需的设备功能”设置(注意它需要armv7)enter image description here

顺便说一句,当我尝试通过组织者手动添加应用程序时,我发现了这一点并报告了:

  

无法安装应用程序

     

/Users/.../TestsDebug.app中的应用程序的Info.plist指定   设备功能要求,Dev iPhone 3G无法满足这些要求

之后所有人都应该工作。谈论PITA。

答案 1 :(得分:12)

转到 Xcode>偏好>下载并安装旧iOS版本的调试支持。

答案 2 :(得分:3)

mmorris让我接近解决问题...... 在Info.plist中,我必须将所需的设备功能设置为armv6,而不是armv7 希望这也可以帮助其他人。

答案 3 :(得分:1)

您需要连接手机,然后转到管理器。 Xcode应该自动请求旧版本。

有关详情,请参阅开发者页面。它在4.2 beta的注释中有描述

答案 4 :(得分:1)

我发现我必须将armv6添加到架构中,但仍然无法正常工作。现在我已经从所需的功能中删除了armv7,就是这样!它奏效了!

答案 5 :(得分:1)

我在尝试在旧iPod Touch上运行我的应用时遇到了类似的问题。我升级到Xcode 4.3.3,在旧硬件上,我的应用程序将不再在调试器中运行。

我相信其他关于“架构”和“所需设备功能”的评论是正确指定的重要细节。不幸的是,它们还不足以解决我的问题。

就我而言,我发现构建方案是罪魁祸首。 Xcode 4.3.3提示我在升级项目时从GDB调试器切换到LLDB。当我将我的计划的运行操作更改回GDB 时,我能够在Xcode的旧硬件上再次运行应用程序。

答案 6 :(得分:0)

这对我有用,如果你之前有一个旧版本的Xcode,它应该适合你。如果没有,那么您应该按照其他人的建议从旧版本的SDK获取SDK:

sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0。 SDK

这个命令与其他命令略有不同,但是这些命令将文件放在SDKs文件夹本身中 - 我们希望用适当的名称创建它的子目录。

答案 7 :(得分:0)

在我的情况下,有一条冗余线 in必需的设备功能 enter image description here

我刚删除它......

enter image description here

希望它会帮助别人。