我已经搜索了iOS SDK兼容性指南,但无法对此进行解释。
我理解:
我正在努力解决的问题是,如果在编译时修复了__IPHONE_OS_VERSION_MIN_REQUIRED,并且只在运行时知道设备的操作系统。所以我提交的代码总是会编译相同的。
或是自动编译多个版本?
有人可以解释一下吗?
非常感谢,
克里斯。
答案 0 :(得分:1)
你是对的,__ IPHONE_OS_VERSION_MIN_REQUIRED在编译时是固定的。如果您为不同的平台和版本编译应用程序,那些内容和宏可能会变得有用。因此,如果您要为iOS 3.0编译一个版本的应用程序,为iOS 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版本,那么您提交的代码将显示为动态。
您可能还会发现这很有用: