当前位置: 移动技术网 > 移动技术>移动开发>Android > @available关键字导致旧版本Xcode编译出错

@available关键字导致旧版本Xcode编译出错

2020年09月21日  | 移动技术网移动技术  | 我要评论
用@available关键字导致旧版本Xcode编译出错。在Xcode11的SDK工程的代码里使用@available关键字判断当前移动端系统版本,打包的静态库拖入较低版本Xcode中编译,会出现以下错误:Undefine symbols for architecture i386:“__isPlatformVersionAtLeast”, referenced from:…ld: symbol(s) not found for architecture i386从错误信息来看,是 __isPl

用@available关键字导致旧版本Xcode编译出错。
在Xcode11的SDK工程的代码里使用@available关键字判断当前移动端系统版本,打包的静态库拖入较低版本Xcode中编译,会出现以下错误:
Undefine symbols for architecture i386:
“__isPlatformVersionAtLeast”, referenced from:

ld: symbol(s) not found for architecture i386

从错误信息来看,是 __isPlatformVersionAtLeast 方法没有具体的实现,但是工程里根本没有这个方法。实际测试无论在哪里使用@available,并使用Xcode11打包成动态库或静态库,把打包的静态动态库添加到 Xcode10中编译都会出现这个错误,因此可以判断是iOS13中对应关键字@available实现使用新的api。
解决方案
如果SDK需要适配旧版本的Xcode保证可以在旧版本的Xcode上运行,那么需要避开此方法,可以通过获取系统版本来进行判断:
if ([UIDevice currentDevice].systemVersion.floatValue >= 13.0) {

}

本文地址:https://blog.csdn.net/yanhaijunyan/article/details/108710179

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网