支持旧版iOS版本和设备

3
我需要一款iOS应用与之前的iOS版本兼容,至少从4.0版本开始,并且也要与之前的设备(iPhone 4S,4,3GS......以及可能所有iPad设备)兼容。我找到了一些处理iOS版本向后兼容的帖子,这些帖子已经有几年了(例如:如何使用最新的Xcode下载构建兼容较旧iOS版本的应用?),我不知道这是否被弃用或者它仍然是进行方式,至少涉及应用程序构建方面。关于编程问题,我想我应该查看文档,以了解我想要使用的SDK功能/库/框架是否支持我想兼容的所有iOS版本...而且有了这样的信息,我应该如何编程检查设备正在运行的iOS版本,以便提供某个功能或不提供某个功能?
另一方面,关于iOS版本和运行它们的设备:我能否找到任何列出每个现有设备支持哪个iOS版本的苹果文档?在开发应用程序时,我应该考虑哪些硬件相关问题?
谢谢。
编辑:目标架构是我必须考虑的唯一硬件问题吗?知道,例如,iPhone 3GS能够运行iOS 6.1.3版本,我可以假设该设备将支持所有SDK的功能,还是我仍然需要根据设备检查这些功能是否可用?

1
问题的根源在于构建针对armv架构的目标,而这些架构在新版本的Xcode中已经无法进行目标定位。请参见https://dev59.com/w2cs5IYBdhLWcg3wu2Yp。我非常强烈建议将要求更改为iOS 4.3+,而不是iOS 4.0+,因为这将为您节省大量的麻烦。目前,大多数开发人员只针对iOS 4.3+进行开发,因为苹果已经使支持旧版iOS变得困难。 - bengoesboom
此外,这份文档(虽然有点旧了)列出了支持每个设备的 iOS 版本的矩阵图。https://www.dropbox.com/s/u4lp189clie04ki/iOS_Support_Matrix_AUTUMN2012-2.pdf - bengoesboom
目前只有几个百分点的设备运行在iOS5上。那么,将应用程序针对iOS4+而不是iOS5有什么意义呢?通常的做法是,您(或您的客户)应该仅针对当前iOS版本及其前一个版本进行应用程序开发,也就是iOS5iOS6,这是我撰写此评论时的情况。 - holex
这就是关键,针对iOS 4及以上版本进行开发是该应用的要求之一... 如果在开发阶段满足此要求真的很不方便,或许至少应将其提高到iOS 4.3... - AppsDev
3个回答

5

针对支持iOS 6.0的最新Xcode版本,你无法开发支持iOS < 4.3(最低基本SDK)的设备,而且支持iOS 4.0版本的Xcode不支持iOS 6.0。针对旧设备,您需要在“项目设置”选项卡的“构建设置”中将“体系结构”设置为armv6 armv7。

要检查运行的iOS版本,请在此处检查可用的帖子,您将找到适合您的帖子;)

总之,我会将基本SDK设置为5.1,因为这是iPad 1和iPod touch 3代可以使用的最后一个版本,并且已经长时间可用,所以每个人都应该拥有最新更新。

旧设备只能运行iOS 4.2.x,而当前的Xcode(4.6.2(4H1003))不支持这些设备。


关于“Base SDK”设置的问题:据我所知,它确定了应用程序可以运行的最新iOS版本,因此将其设置为iOS 5.1将防止应用程序在更高的iOS版本上运行,对吗?我需要支持从iOS 4.3到最新版本,我该如何处理? - AppsDev
“Base SDK”设置的是最低的iOS版本,而不是最高的。反过来也没有意义,因为新版本总是支持旧的API(这意味着它不会崩溃,但并不意味着一切都能如预期运行),而旧版本则不知道新的API(例如新方法,因此它们不会响应选择器,你知道这意味着什么;))。 - geo
1
似乎_base SDK_实际上设置了支持的最新iOS版本,而_部署目标_则设置了支持的最早iOS版本(SDK兼容性指南)。 - AppsDev

3

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接