Xcode11打包的静态库,Xcode10编译出错:___isPlatformVersionAtLeast

Undefined symbols for architecture armv7:
      ...
      ...
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
___isPlatformVersionAtLeast

___isPlatformVersionAtLeast ???
最终发现:
使用了@available来判断iOS版本,使用Xcode11编译静态库,在Xcode10上使用这个静态库,会出现这个编译错误。
如果需要兼容旧版本Xcode,也就是Xcode11以下的版本,可以使用旧的判断iOS版本的方式:

[UIDevice currentDevice].systemVersion

结果:

13.1.2

但是要注意浮点精度问题:

[UIDevice currentDevice].systemVersion.floatValue

结果:

13.1000004

所以:

  • 如果是大版本判断,浮点类型也是没问题的;
  • 如果是小版本判断,要注意不要使用浮点类型。

你可能感兴趣的:(Xcode11打包的静态库,Xcode10编译出错:___isPlatformVersionAtLeast)