我如何支持多个iOS版本?

mar*_*ver 2 iphone ios

因此现在有很多版本的iOS在设备上运行,而且我有一些关于支持不同类型的问题.

如果我要发布一个知道的应用程序,想要使用iOS 6中的某些功能,但又不想丢失iOS 5用户,是否可以在App Store上提供的同一应用程序中定位这两个版本?

这里的另一个选择是什么?要跳过iOS 6功能并只针对iOS 5?在这种情况下,应用程序是否完全支持iOS 6?

谢谢.

Rob*_*ier 7

iOS用户升级速度比其他任何组都快.除非您有特殊的用户群,否则我建议您不要花费大量时间来支持超过6个月的iOS版本.对于许多类型的应用程序,即使这太长了.当iOS 5问世时,Matt Gemmell对此进行了精彩的讨论.

在过渡期间,在切换到最新版本之前,我的建议是针对旧SDK进行构建.不要只设置"部署目标".设置"Base SDK".这意味着你需要保留旧的SDK并将它们链接到你的Xcode副本,因为Apple将继续删除它们.谷歌围绕如何建立旧的SDK.有很多讨论.我确信SO上还有很多.我强烈建议这有几个原因(无论你等待多长时间升级):

  • 实际上,您可以在最新版本中提供旧版本中没有的功能.大部分时间你都不得不以某种形式在旧版本中提供它.这意味着你现在有两个版本的代码基本上做同样的事情.大多数时候,较旧的方式更难,但仍然有效.一旦你写的硬法,什么是点写简单的方法,然后编写额外的代码在它们之间进行选择?

  • 交换功能所需的测试非常高.首先测试功能是很困难的.现在测试测试没有该功能.

  • 使用"开发目标"时,编译器不会给您任何帮助.如果您从iOS 6调用方法而不检查它是否存在,那么您将不会收到任何警告.你只会在iOS 5上崩溃.如果你使用Base SDK,编译器会告诉你它什么时候不可用.我在WWDC上与Xcode团队讨论了这个问题.他们指出Apple建议使用Deployment Target,但承认在实践中使用它非常脆弱.

所以基本上,我说要继续使用iOS 5 SDK,直到你准备好去iOS 6.然后转到iOS 6 SDK,永远不要回头看.