1

Xcode 项目具有以下设置:

  • Deployment target: iOS 9.0
  • Base SDK: iOS 9.3 (latest)

据我了解,该应用程序可以安装在 iOS 9.0 上,并可能尝试访问仅在 iOS 9.3 之后才可用的 API。在这种情况下,应用程序会崩溃。

那么如何轻松找出应用程序访问的哪些 API 在部署目标和基础 SDK 之前的版本之间的任何版本中不可用?由于编译器知道部署目标,所以当在代码中使用 API 时,它不应该发出警告吗?当在低于其介绍的 iOS 版本上运行时显然会使应用程序崩溃?

4

2 回答 2

2

您在头文件中检查这一点。

API 在 iOS 9 和 iOS 9.3 之间没有变化,因此您是安全的。另一方面,使用 iOS 8 的人无法运行您的应用程序,这意味着更少的用户、更少的销售额和更少的资金。

如果您在 8.0 上部署,您可以在编译时通过临时将基本 SDK 更改为 8.0 来轻松验证是否使用了一些新 API。在这种情况下,您必须确保不在 iOS 8 上调用任何 iOS 9 方法。

于 2016-03-30T10:50:34.703 回答
0

您应该检查类(' NewFeature',是您正在调用的任何 9.3 要素类)

if ([NewFeature class]){
   //then use it if available
   //The code will land here if it is available to the OS the device is using
}else{
   //use older alternative way
}
于 2016-03-30T10:53:11.523 回答