背景
由于现在做的项目需要从ios7开始支持,于是存在一些版本兼容上的问题。之前项目里面也没有对应的机制去检测API版本,有个别用户反应在ios7上崩溃(无奈公司也没有ios7的测试机),所以出现这种情况就很头疼。
XCode9以前的API版本检测
XCode9之前的API版本检测大家可以参考这篇文章(Xcode8使用这种方式没有问题,更早的版本没有试过)http://luoxianming.cn/2016/03/30/iOSSDKAPIVersionCheck/
这种方式在XCode9上面已经不能用,会报好多错.
XCode9API版本检测
XCode9自带API版本检测,而且默认也是打开的.如下:
但是也有老项目是从XCode8或者更早版本的XCode迁移过来,上图的两个开关就需要手动去打开.
1.
选中Targets
再选中Build Settings
2.
选中All
和Combined

3
.
下滑到Warnings - All languages
或直接搜索All languages
或分别搜索Unguarded availability
和Uninitialized Variables
并对应设置为All Versions
和Aggressive
如下:
最后的效果如下:

网友评论