项目中需要继承支付宝和环信,编译的时候没有错误,但是在运行的时候报了duplicate symbol错误,从错误提示中发现新版的环信sdk中的静态库libHyphenateSDK.a与支付宝中的静态库libcrypto.a冲突了,这两个静态库中存在相同的对象文件(.o文件)。
我的解决办法是在other linker flag中添加-force_load,并在后面配上两个静态库的路径,来按需加载静态库,然后编译、运行,即可通过。
如下图:
对于不太了解other linker flag的,可以看看下面的这篇文章。
关于Xcode的Other Linker Flags中的一些参数