【问题标题】:Supporting old iOS versions and devices支持旧的 iOS 版本和设备
【发布时间】:2013-05-14 15:22:22
【问题描述】:

我需要一个 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 文档?在开发应用程序时,我应该考虑哪些与硬件相关的问题?

非常感谢

编辑:目标架构是我必须考虑的唯一硬件考虑因素吗?例如,知道 iPhone 3GS 能够运行并且正在运行 iOS 6.1.3,我是否可以假设该设备将支持 SDK 的所有功能,或者我仍然需要检查这些功能的可用性,具体取决于在设备上?

【问题讨论】:

  • 问题的根源在于构建目标 armv 架构,您不能再在新版本的 Xcode 中定位这些架构。见stackoverflow.com/questions/12619124/…。我非常强烈建议将需求更改为 iOS 4.3+ 而不是 iOS 4.0+,因为它会让您头疼不已。目前大多数开发者只针对 iOS 4.3+,因为 Apple 很难支持旧的 iOS 版本。
  • 另外,这个文档(虽然现在有点老了)有一个很好的支持 iOS 版本的矩阵 dropbox.com/s/u4lp189clie04ki/…
  • 目前有百分之几的设备在iOS5 下运行。将应用程序定位到iOS4+ 而不是iOS5 有什么意义?通常的做法是您(或您的客户)应该只针对应用程序针对当前的 iOS 版本和一个落后的版本,目前我正在写这篇评论时是 iOS5iOS6 .
  • 就是这样,针对iOS 4及更高版本作为应用程序的要求...如果在开发阶段满足这样的要求确实不便,也许应该至少提高到iOS 4.3...

标签: iphone ios xcode ipad backwards-compatibility


【解决方案1】:

使用支持 iOS 6.0 的 最新 xcode 版本,您无法为具有 iOS 的设备进行开发,并且支持 iOS 4.0 的版本也不支持 iOS 6.0。对于较旧的设备,您必须在 项目设置选项卡“构建设置”中将 Architectures 设置为 armv6 armv7

要检查正在运行的 iOS 版本,只需检查堆栈中的可用帖子,您会找到适合您的;)

我会将基本 SDK 设置为 5.1,因为它是 iPad 1 和 iPod touch 3 可以使用的最后一个版本。并且足够长,因此每个人都应该有最新的更新。

旧设备只能安装 iOS 4.2.x,当前的 xcode (4.6.2 (4H1003)) 不支持。

【讨论】:

  • 关于“Base SDK”设置的问题:afaik,它决定了应用程序可以运行的最新iOS版本,所以将其设置为iOS 5.1会阻止应用程序在iOS更高版本上运行,对吧?我需要从 iOS 4.3 到最新的支持,我该如何处理?
  • “基础 SDK”设置最低,而不是最高 iOS 版本。反过来是没有意义的,因为较新的版本总是支持较旧的 API(确实意味着它不会崩溃,但并不是一切都会按预期运行)而较旧的版本不知道新的 API(像新方法一样,所以它们不会响应选择器,你知道这意味着什么;))
  • 看来base SDK实际上设置了支持的最新iOS版本,而deployment target设置了支持的最早iOS版本(SDK Compatibility Guide)
【解决方案2】:

iOS 支持矩阵 v2.4

此版本已更新并包含 iOS 7。

链接:http://www.iossupportmatrix.com

【讨论】:

  • @AppsDev 也许是+1?
【解决方案3】:

http://iossupportmatrix.com 有一个很棒的信息图显示哪些设备支持哪些版本的 iOS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多