2013-05-14 223 views
2

我需要一个iOS应用程序与以前的iOS版本兼容,至少从4.0以及先前的设备(iPhone 4S,4,3GS ...以及可能的所有iPad设备)兼容。我发现一些处理iOS版本向后兼容性的帖子已经有几年了(例如,How to build against older iOS versions with the latest Xcode downloads?),我不知道这是否被弃用,或者它仍然是继续进行的方式,至少在应用程序构建方面。关于编程问题,我想我应该检查文档,以了解我想使用的所有iOS版本是否支持我要使用的SDK功能/库/框架......并且有这些信息,我该如何检查编程设备正在运行的iOS版本,以便提供某种功能?支持旧的iOS版本和设备

另一方面,关于iOS版本和运行它们的设备:我可以找到任何Apple文档列出哪些iOS版本支持每个现有设备?在开发应用程序时应考虑哪些与硬件有关的问题?

非常感谢

编辑:目标体系结构(s)是唯一的硬件考虑我已经考虑到?了解到,例如,iPhone 3GS可以运行并运行iOS 6.1.3,我是否可以假设该设备将支持所有SDK的功能,或者我仍然需要检查此类功能的可用性在设备上?

+1

问题的根源是关于建设目标ARMV架构,你不能再针对更新版本的Xcode。请参阅http://stackoverflow.com/questions/12619124/how-to-support-both-armv6-and-armv7s-for-release-build-in-xcode-4-5。我非常强烈建议将需求更改为iOS 4.3+而不是iOS 4.0+,因为这会为您节省一笔巨大的麻烦。目前,大多数开发人员仅针对iOS 4.3以上,因为Apple已经难以支持较早的iOS版本。 – bengoesboom 2013-05-14 15:51:32

+0

另外,这个文件(虽然现在有点老)有一个很好的支持设备的iOS版本的矩阵https://www.dropbox.com/s/u4lp189clie04ki/iOS_Support_Matrix_AUTUMN2012-2.pdf – bengoesboom 2013-05-14 15:56:35

+0

目前几个百分点的设备运行在iOS5下。将应用程序定位到“iOS4 +”而不是“iOS5”有什么意义?常规做法是,您(或您的客户)应将应用程序**作为当前iOS版本的目标,并将一个版本作为仅支持**的版本,当我撰写此评论时,这是“iOS5”和“iOS6”。 – holex 2013-05-14 20:57:16

回答

4

与支持的iOS 6.0 最新的Xcode版本,你不能下发展的设备与的iOS < 4.3(最低基地SDK),也是版本支持的iOS 4.0不支持的iOS 6.0。对于较旧的设备,您必须将体系结构设置为您的armv6 armv7项目设置选项卡“生成设置”

检查iOS版本上运行,只是检查这里可用的帖子在堆栈中,你会找到一个适合你;)

全部在一个我所设置的基本SDK 5.1,因为它是最后那个可以被iPad 1和iPod touch 3使用。并且可用时间很长,所以每个人都应该有最新的更新。

旧设备只能有iOS 4.2.x,并且不受当前xcode(4.6.2(4H1003))的支持。

+0

A关于“基础SDK”设置的问题:afaik,它确定应用程序可以运行的最新iOS版本,因此将其设置为iOS 5.1将阻止应用程序在较高版本的iOS上运行,对吧?我需要从iOS 4.3到最新的支持,我该如何处理? – AppsDev 2013-05-30 11:32:46

+0

“基础SDK”设置最低,而不是最高的iOS版本。因为新版本总是支持较旧的API(确实意味着它不会崩溃,但并不意味着一切都会按预期运行),而旧版本不知道新API( )) – geo 2013-06-02 13:26:04

+1

似乎_base SDK_实际设置了支持的最新iOS版本,而_deployment target_设置了最早支持的iOS版本([SDK Compatibility Guide](SDK兼容性指南)],因此它们不会响应选择器, (http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html#//apple_ref/doc/uid/10000163i-CH1-SW1)) – AppsDev 2013-07-04 14:52:22