我有一个在其 info.plist 文件中针对 iOS7 的应用程序。现在我想针对 iOS 7 。我也计划支持 iOS 5 和 iOS 6。
我的意思是我希望我的客户能够下载我的应用程序,无论他们运行的是 iOS 5.X 还是 6.X 还是 iOS 7。这可能吗?
我有一个在其 info.plist 文件中针对 iOS7 的应用程序。现在我想针对 iOS 7 。我也计划支持 iOS 5 和 iOS 6。
我的意思是我希望我的客户能够下载我的应用程序,无论他们运行的是 iOS 5.X 还是 6.X 还是 iOS 7。这可能吗?
是的,这当然是可能的。您需要将项目的部署目标设置为版本 5.0。为此,打开项目选项,导航到“IOS 应用程序”选项卡并将“部署目标”选项更改为 5.0。
由于您是针对最新的 SDK 构建的,因此您必须非常小心,不要使用实际运行时不可用的任何 API 和功能。
最好不要检查版本号,而是测试有问题的对象是否响应特定的选择器:
if ( UINavigationBar.Appearance.RespondsToSelector( new Selector("setShadowImage:")))
UINavigationBar.Appearance.ShadowImage = new UIImage();
如有疑问,Xamarin Studio 的对象资源管理器提供了一些见解,因为大多数 API 成员都使用 Export 属性进行修饰,其中包含一个 since 属性,指示引入 API 的 IOS 版本。Export 属性还包含选择器的名称,以便在上面的代码中与 Selector 构造函数一起使用。
最后一句话。根据一些消息来源,iOS6 的渗透率在 6 月份接近 96%。从那时起,这个数字很可能上升。更不用说苹果在昨天的发布会上报告说 iOS7 的渗透率已经达到了 62%。如果我是你,我会三思而后行支持 iOS5 是否值得。
Apple 不支持向后兼容,但肯定支持向前兼容,但如果您真的想支持 iOS7,我们必须处理设计问题。
要更改应用程序的部署目标,请选择项目名称并转到目标,然后从右侧窗格中选择部署目标。它将支持您选择的版本以上的操作系统。