iOS引入第三方库冲突duplicate symbol

2018-09-12  本文已影响0人  低调的腹

看这种图:

一个是下拉刷新库,一个是百度导航sdk ,当我把最近的导航sdk引入的时候,出现duplicate symbol的问题,这个头大,首先sdk 是一个静态库,如果存在相同的symbol ,如何解决了,将改问题在百度开发者中心咨询之后,给我了意见,使用 lipo  这个命令。


首先,查看该库支持哪几种架构,使用 lipo -info  libbaiduNaviSDK.a

结果:

Architectures in the fat file: libbaiduNaviSDK.a are: armv7 i386 x86_64 arm64

然后将每个架构库导出

lipo -thin armv7 rlibLoansSDK.a -output rlibLoansSDK_armv7

等等等.........

然后你可以查看该架构下所有对目标文件 .o

使用命令

Ar -t libbaiduNaviSDK.a_armv7

然后删除冲突的symbol

Ar -dv libbaiduNaviSDK.a_armv7 SSZipArchive.o

 然后将各个架构的库都按照如上所示 删除冲突,最后将所有的.a 库合并一个.a库

lipo -create libbaiduNaviSDK.a_armv7 libbaiduNaviSDK_i386

libbaiduNaviSDK_x86_64 libbaiduNaviSDK_arm64 -output libbaiduNaviSDK.a

到此为止,就可以用了。。。



上一篇下一篇

猜你喜欢

热点阅读