如果我的iOS 4 iPhone应用程序在iOS 3.2手机上执行会发生什么?

时间:2010-06-08 02:04:21

标签: iphone ipad

我认为它会崩溃,对吗?如果我开发一个使用iOS 4 SDK的iPhone应用程序,它会进入应用程序商店,我怎么能确保运行旧版iOS的人不会下载它?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

如果您的项目指定4.0作为目标,那么它甚至不会被加载到3.2手机上 - 没问题。

当您将应用程序发布到商店时,您可以指定最低操作系统级别和可接受的设备(例如,您不会在iPod Touch上查找GPS)。有一个兼容性检查,如果它不兼容,应阻止应用程序加载。应用程序批准过程(希望如此)确保您所说的内容实际上是兼容的。

如果你以某种方式使用设备上不存在的API(因为你的目标是在引入该API之前的版本或任何其他原因),那么,由于未知的选择器,你将会崩溃。

您可以使用

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200

检查您要定位的版本...第一个数字(3)是主要修订版本,第三个数字(2)是次要修订版本。因此,显示的检查是3.2。

答案 1 :(得分:2)

不是使用Adam Eberbach的方法使用编译时预处理程序指令来拆分代码,而是考虑使用respondsToSelector:之类的运行时检查,使用NSClassFromString检查nil以确定是否存在类,以及弱链接新的框架和库。

这将允许您编写一个可以在多个设备上运行的应用程序,而无需任何代码隔离或单独的二进制文件。