我有一个针对 iOS7 的应用程序,其 info.plist 文件。现在我想瞄准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 构造函数一起使用的选择器名称。
最后一句话。根据some sources 6 月份,iOS6 渗透率接近 96%。自那时以来,这个数字很可能有所上升。更不用说苹果在昨天的事件中报告称 iOS7 的渗透率已经达到 62%。如果我是你,我会三思而后行,支持 iOS5 是否值得这么麻烦。
关于ios - 面向 ios 7 但支持 ios 5+ monotouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19538491/