iPhone SDK兼容性包含__IPHONE_OS_VERSION_MIN_REQUIRED

时间:2011-06-23 12:37:00

标签: iphone ios sdk compatibility deprecated

我已经搜索了iOS SDK兼容性指南,但无法对此进行解释。

我理解:

  • 部署目标是最早的操作系统 版本,应用程序可以在
  • 上运行
  • Base SDK是它的SDK 编译使用和其功能 如果运行时设备可以使用 支持他们

我正在努力解决的问题是,如果在编译时修复了__IPHONE_OS_VERSION_MIN_REQUIRED,并且只在运行时知道设备的操作系统。所以我提交的代码总是会编译相同的。

或是自动编译多个版本?

有人可以解释一下吗?

非常感谢,

克里斯。

2 个答案:

答案 0 :(得分:1)

你是对的,__ IPHONE_OS_VERSION_MIN_REQUIRED在编译时是固定的。如果您为不同的平台和版本编译应用程序,那些内容和宏可能会变得有用。因此,如果您要为iOS 3.0编译一个版本的应用程序,为i​​OS 4.0编译一个版本,则可以使用__IPHONE_OS_VERSION_MIN_REQUIRED在编译时从iOS 3.0版本中删除所有iOS 4.0代码。

由于AppStore强制您使用最新的SDK版本,因此即使您定位3.0设备,也不得不使用4.0 SDK。 __IPHONE_OS_VERSION_MIN_REQUIRED仅在使用旧SDK时才有用。由于您只需将部署目标设置为较低版本,因此您必须在运行时检查iOS版本。

您可以使用here描述的方法在运行时检查iOS版本

答案 1 :(得分:1)

IPHONE_OS_VERSION_MIN_REQUIRED是一个定义 - 因此,虽然您的部署目标可能很低,但如果您的应用与许多iOS版本严重兼容,则可能正在使用一些重要的已弃用功能。

当然 - 你说的是设备的操作系统只在运行时才知道。根据您的项目设置,Apple将在应用商店中使用该信息,以确保拥有正确设备的用户可以访问您的软件。根据我的知识不会创建多个版本 - 如果您使用该定义来充分利用旧版本的iOS版本,那么您提交的代码将显示为动态。

您可能还会发现这很有用:

How to target a specific iPhone version?