支持iOS 6和7
我们目前正在开发iOS应用程序,自从我们在2个月前开始以来,我们决定仍然支持iOS6。 因此我研究了如何做到这一点,并在SO上找到了一些答案,推荐使用旧的iOS6 SDK来确保我们不会意外使用iOS7的功能。支持iOS 6和7
现在,我刚刚收到一封苹果开发人员电子邮件,标题为为iOS 7构建您的应用程序。该电子邮件称,2014年2月1日之后提交的所有应用都必须使用iOS7 SDK进行构建。
我想我仍然可以在iOS7 SDK开发结束时编译整个应用程序,并将开发目标设置为6.1,并且在开发过程中只使用iOS6 SDK。
什么是官方的方式来制作一个iOS6兼容的应用程序,并确保没有iOS7的功能被意外使用?
您的应用程序将可能被拒绝。苹果通常允许宽限期,特别是如果应用程序之前存在 - 但没有保证。对于全新的应用程序,您可能会遇到困难。不过,我不建议继续使用SDK6。
如果您想使SDK7应用程序与iOS6兼容,您将不得不使用respondsToSelector:
来检查目标设备在运行时是否存在方法。如果没有,你将不得不进入不同的代码分支。或者,您可以选择不使用任何iOS7特定的API。
请注意,还有特殊的事情需要照顾,不仅让您的应用程序运行,而且在两个版本上都看起来不错。 Apple为transitioning to iOS7 while still supporting iOS6提供了指南。
在所有情况下,您都必须确保您的应用在两个iOS版本上运行,这意味着您至少需要两台设备。
宽限期不是他们一个月前宣布他们会停止接受iOS 6.x SDK和2月1日更新的时间段吗? – borrrden
是和不是。至少在iOS5/6中,在那段时间之后,我没有用以前的SDK版本提交问题。但我的应用程序之前已经存在。这就是为什么我写的没有保证。这次可能会有所不同。 – Krumelur
@Krumelur:谢谢你的回答。添加'respondsToSelector'以建立与较低iOS版本的兼容性感觉有点像代码的“膨胀”。这实际上是我想避免的事情。对我来说,将SDK设置为iOS6似乎更有意义。我可以轻松放弃新的ios7的东西。但是ios6兼容性很重要。该应用程序将是全新的顺便说一句。感谢您的链接。 – Jens
此问题是无题,因为它是关于App Store合规性,而不是编码问题。请参阅[是否有关应用程序商店关于堆栈溢出主题的以应用程序商店为中心的问题?](http://meta.stackexchange.com/q/175701) –
@JoshCaswell那么,它的一部分至少是如何支持两个版本和这是一个编码问题。 – Krumelur
是的,您可以使用iOS 7 SDK编译您的应用并将其发送到应用商店。 – jcesarmobile