我如何支持多个iOS版本?

时间:2012-09-28 21:37:56

标签: iphone ios

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:7)

iOS用户升级速度快于其他任何群组。除非您有特殊的用户群,否则我建议您不要花费大量时间来支持超过6个月的iOS版本。对于许多类型的应用程序,即使这太长了。 Matt Gemmell wrote an excellent discussion of this when iOS 5 came out.

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

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

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

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

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