我开发的应用程序(使用 Swift 3 和 xcode 8)已经可以在 iOS 10 上运行,但我的老板希望它可以在 iOS 8 上运行,因为他有一部装有 8.2 的 iPhone:当我将他的 iPhone 插入我的 Mac 并开始构建项目时失败,因为某些功能仅在 iOS 9.0 或更高版本上可用。
我做了一些研究并发现了一些选择,但由于我是初学者,我不知道什么会更好。让我与您分享:
- 用 Objective-C 重写整个应用:我觉得不太方便,因为我从来没有学过这门语言,而且我的老板希望应用尽快上传到商店;<
- 从 Swift 调用 Obj-C 代码以满足 iOS 8 需求;
- 无论如何都要上传应用程序:我设法修改了应用程序并使其与 iOS 9 兼容,您是否知道 Apple 有什么建议或建议不要为太多旧的 iOS 版本开发应用程序,以便我能说服我的老板不要在这件事上纠缠不休吗? 87% of devices are using iOS 10所以我们不会切断太多人;
- 上传应用并在将来的更新中添加 iOS 8.0 兼容性:我可以在下次更新中更改 iOS 目标吗?
- 使用 Appcelerator 或 React Native。
最佳答案
最好的解决方案是以编程方式检查 iOS 版本,并且仅在用户的手机实际支持时才调用有问题的方法。否则请向用户隐藏该功能。
这是从代码中检查 iOS 版本的方法:
if #available(iOS 9, *) {
// iOS 9 Swift code
} else {
//Hide the methods from the users on older OS versions
}
那行不通,因为大多数系统 API 都不依赖于语言。如果某个 API/功能仅在某个 iOS 版本中添加,那么无论您使用 Objective-C 还是 Swift,该要求都保持不变。
同1。
这当然是一个可行的选择。
据我所知,您可以在以后的更新中更改目标 iOS 版本。
如果您想实现使用仅在 iOS9 中引入的 API 的功能,即使混合框架使用内置 iOS API,也需要该 iOS 版本。
关于ios - 如何实现从 iOS 10 向后兼容 iOS 8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45839893/