Iphone 在使用Xcode 4.2和iOS 5 SDK时,是否可以针对较旧的iOS版本?

Iphone 在使用Xcode 4.2和iOS 5 SDK时,是否可以针对较旧的iOS版本?,iphone,xcode,ios5,Iphone,Xcode,Ios5,我最近刚刚下载了带有iOS 5 SDK的Xcode 4.2软件包,我立即注意到我无法使用带有iOS 4.2.1的iPhone 3Gs进行调试。我只能在安装了iOS 5的iPhone4上进行调试和测试 对于我的任何运行低于5.0版本iOS的设备,Xcode只是说“已完成对iPhone3GS的运行”,而没有运行它。我将部署目标设置为3.0,因为我没有在我的应用程序中使用3.0以上的任何功能,我希望能够以所有3.0或更高版本为目标。我已经安装了所有的配置文件,并且是最新的 我已经退出并重新启动了xco

我最近刚刚下载了带有iOS 5 SDK的Xcode 4.2软件包,我立即注意到我无法使用带有iOS 4.2.1的iPhone 3Gs进行调试。我只能在安装了iOS 5的iPhone4上进行调试和测试

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

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

我的问题是,是否仍有可能使带有新SDK的应用程序在低于5的iOS版本下工作?如果我无法在旧手机上安装,我如何确保我的应用程序仍能在较低的iOS版本上运行

编辑: 好的,看起来iOS SDK 5默认情况下放弃了对armv6的支持。您需要做的是在目标和项目的“构建设置”下的“体系结构”字段中添加armv6。然后,您的应用程序将能够在iPhone 3G设备上运行。 答案可以在这里找到

您需要连接电话,然后转到组织者。Xcode应该自动请求旧版本


有关更多信息,请参见开发者页面。4.2 beta版的说明中描述了这一点。转到Xcode>Preferences>下载并安装针对旧iOS版本的调试支持。

我在尝试在iPhone 3G 4.2.1上运行新创建的Xcode 4.2项目时遇到了同样的问题。下面是我如何让它运行的

1) 将目标的“构建设置”==>“体系结构”从“标准(armv7)”更改为“其他”。添加armv6和armv7

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

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

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

顺便说一句,我在尝试通过organizer手动添加应用程序时发现了这一点,它报告:

无法安装应用程序

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


在那之后,一切都会好起来的。谈谈PITA。

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

我发现我必须将armv6添加到体系结构中,但仍然不起作用。现在我已经从必需的功能中删除了armv7,就是这样!成功了

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

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


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

这对我有效,如果您以前有旧版本的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文件夹中的文件-我们希望使用适当的名称创建它的子目录。

在我的情况下,有一个多余的行 在所需的设备功能中

我刚把它取下来


希望它能帮助其他人。

我这样做了,并单击“使用此设备进行开发”,它似乎做了它应该做的事情,但我仍然无法从xcode在我的旧设备上运行应用程序。我转到“首选项”,下载并安装了对旧操作系统的调试支持,退出xcode,重新打开xcode进行了清理和构建,但该应用程序仍然无法安装在我的旧设备上。我现在完全不知所措,因为当我看到你的回复时,我确信这会解决我的问题:(我也欠你一杯啤酒!这解决了我在Xcode 4升级后遇到的另一个问题!我现在可以调试我的iOS 4.2设备(iPodtouch第二代)!请注意,您的编辑与体系结构有关,这是iOS版的一个单独问题。另外,请添加编辑作为答案,以便您可以接受您找到的解决方案,并且此问题可以标记为已回答。非常感谢!我欠您一些啤酒!这确实解决了我的问题,PITA确实:谢谢!我已经阅读了有关架构设置在别处,但似乎没有其他人提到“必需的设备功能”设置。我必须补充:新项目和旧项目都会受到升级的影响!我在谷歌搜索之前测试了我的旧东西,但它们也不起作用!我也欠你一杯啤酒!:)我也有同样的问题,但是,即使项目的设置是架构的“标准armv7”,有效的架构也已经指示“armv6 armv7”。此外,我在Info.plist中没有“必需的设备功能”属性。尽管如此,我还是会尝试这个把戏,希望它能奏效!“所需的设备功能”也让我着迷