iOS 解决.a 静态库冲突问题

今天碰到恶心的libSBJSON.a(千度公司出品) 和ArcGIS 冲突了
和它们聊过之后它们决定不改。那只有自己更改了

#1.看下里面的架构
lipo -info libSBJSON.a

里面是armv7 arm64架构.png
#2.先分离一个架构的包,就先拿armv7动手
Lipo -thin armv7 libSBJSON.a -output libSBJSON_armv7
分离出armv7的包放在当前路径.png
#3.打开armv7这个包
Ar -t libSBJSON_armv7 | grep SBJson
iOS 解决.a 静态库冲突问题_第1张图片
打开包之后可以看到里面有如下 .o 文件.png
#4.删除冲突的.o文件
Ar -dv libSBJSON_armv7 SBJsonStreamParserState-4FEA9E115CD0E45C.o
删除冲突的.o文件
#5. 重复步骤 2,3,4用于另外一个架构arm64 
#6. 把两个架构已经删除了冲突文件的包 打包起来 合并成一个文件
Lipo -create libSBJSON_armv7 libSBJSON_arm64 -output libSBJSON.a
合并两个架构的包

好了 到此为止 就大功告成了!

你可能感兴趣的:(iOS 解决.a 静态库冲突问题)