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
到此为止,就可以用了。。。