0

I've released an app for iOS6 (deployment target: 6.1, SDK 6.1) but now wish to make the app for iOS5 because I realize how many users still have iOS5 to keep the old native Google Maps. I understand I'll have to remove any iOS6-only features such as auto layout and UICollectionView which is okay by me.

My question is, in Xcode, what do I need to configure? Do I modify the deployment target and SDK to read 5.x? Will the Apple Review Board reject my app if I do this?

I'm trying to avoid doing "if device is iOS6 then, else if device is iOS5 then" because it sounds messy when trying to build so I've decided to just make the entire app 100% iOS5 to keep things simpler.

4

1 回答 1

1

如果您的应用程序拥有与我们相同的受众,那么您应该预计大约 35% 左右的人仍然在使用 iOS 5。这不仅是因为对地图的执着感,还因为 iOS 6 尚未适用于最初的 iPad并且因为很多人在一切都运行良好的情况下根本不升级。

要让您的应用程序在 iOS 5 下运行,只需更改部署目标即可。在为 iOS 开发时,您总是链接到最新的 SDK,因为:

  • 针对较旧的 SDK 构建没有技术优势 —
    • Objective-C 调用是完全动态的,因此操作系统可以弄清楚如何路由它们;
    • CGRect像, CGPoint,等vanilla C 结构体NSRange的大小从未改变;
    • 所有 C API 都是围绕传递引用而设计的CGImageRef,因此即使下面的内容完全改变,编译代码处理引用的正确方式仍然相同;和
  • Apple 仅针对最新的 SDK 测试最新的编译器工具链,您将希望利用所有最新的编译器优化和错误修复。

假设您想利用仅 iOS 6 的功能,您不会测试操作系统的版本,您将测试该功能是否可用。通常这涉及调用respondsToSelector:或测试是否[<feature> class]为非零。

于 2013-05-07T01:16:57.313 回答