Post

weak link

在darwin下的编译,有些frame work是对os有要求的,在oc里的代码可以显式的写成

1
2
3
4
5
if (@available(iOS 13.0, *)) {
    // iOS 13.0及以上的代码
} else {
    // iOS 13.0以下的代码
}

但是在编译的时候依然要注意ld的参数,如果直接强依赖,在低版本的系统上依然load是有问题的

这个时候推荐的方法是使用weak link的方式来编译,参考官方文档

因此你可以主动的对所有依赖这个target的framework进行weak link的处理

1
-Xlinker -weak_framework -Xlinker <framework_name>

另外在app里,同步需要一起配置build setting中build phase的link binary with libraries中, 导入这个配置,同时把require改成optional

另外我看到gn里有weak_frameworks的选项,但我没实际用过

This post is licensed under CC BY 4.0 by the author.

Trending Tags