Xcode项目具有以下设置:
Deployment target: iOS 9.0
Base SDK: iOS 9.3 (latest)
据我了解,该应用程序可以安装在iOS 9.0上,并可能尝试访问仅在iOS 9.3之后可用的API。在这种情况下,应用程序会崩溃。
那么如何轻松找出应用程序访问的哪些API在部署目标和基本SDK之前的版本之间的任何版本中都不可用?由于编译器已知部署目标,因此当在代码中使用API时,它不会发出警告,当在iOS版本下运行时显然会使应用程序崩溃吗?
答案 0 :(得分:2)
您在头文件中检查了这一点。
API在iOS 9和iOS 9.3之间不会发生变化,因此您是安全的。另一方面,使用iOS 8的用户无法运行您的应用,这意味着更少的用户,更少的销售,更少的钱。
如果在8.0上部署,则可以在编译时轻松验证是否通过临时将基本SDK更改为8.0来使用某些新API。在这种情况下,您必须确保不要在iOS 8上调用任何iOS 9方法。
答案 1 :(得分: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
}