您的位置:首页 > 移动开发 > IOS开发

ios  多个.framework和.a库中内容出现冲突问题,对其进行分解》去重》合并

2016-10-09 17:09 561 查看
项目中遇到的库三个库的冲突的问题(libNodeMediaClient.a 和FunSDK.framework 和IJKMediaFramework.framework )。

一,进入libNodeMediaClient.a文件夹下查看信息并进行分解 

查看libNodeMediaClient.a

$lipo -info   libNodeMediaClient.a

Architectures in the fat file: libNodeMediaClient.a are: armv7 armv7s i386 x86_64 arm64 
分解armv7

$ lipo -extract_family armv7 -output libNodeMediaClient_arm.a libNodeMediaClient.a
$ lipo  libNodeMediaClient_arm.a -thin armv7 -output libNodeMediaClient_armv7_final.a

$ lipo libNodeMediaClient_arm.a -thin armv7s -output  libNodeMediaClient_armv7s_final.a

分离arm64
$ lipo libNodeMediaClient.a -thin arm64  -output  libNodeMediaClient_arm64_final.a

分离i386
$ lipo -extract_family i386 -output libNodeMediaClient_i386_finla.a libNodeMediaClient.a

分离x86_64

$ lipo -extract_family x86_64  -output libNodeMediaClient_x86_64_finla.a libNodeMediaClient.a

二 同上对FunSDK.framework  中的FunSDK 进行处理 分离查看 

$ lipo -info FunSDK.a
Architectures in the fat file: FunSDK.a are: armv7 armv7s i386 x86_64 arm64 

分离armv
$ lipo -extract_family armv7 -output FunSDK_armv.a   FunSDK.a

$ lipo FunSDK_armv.a -thin armv7 -output  FunSDK_armv7_final.a
$ lipo FunSDK_armv.a -thin armv7s -output FunSDK_armv7s_final.a

分离arm64

$ lipo FunSDK.a -thin arm64 -output FunSDK_arm64_final.a

分离i386 

$ lipo -extract_family i386 -output FunSDK_i386_finla.a FunSDK.a

分离x86_64
$ lipo -extract_family x86_64  -output FunSDK_x86_64_finla.a FunSDK.a

三 同上对IJKMediaFramework.framework  中的IJKMediaFramework 进行处理 分离查看 

四对上面分离出来的.a 对应着arm64/armv7/armv7s 分解为相应类型的.o文件,将同类的.o放在同类行的文件夹.在进行合并 
 1.把所有的 *_arm64_final.a  放在一个文件夹下,然后在 *_arm64_final.a 的同级目录下创建一个arm64的文件夹,

$ ar -x ../FunSDK_arm64_final.a
2 把同类类合并到一起的.o打包

$ libtool -static -o  ../FunSDK_arm64_final.a

3把所有的包合并 

$ lipo -create -output  FunSDK.a  FunSDK_armv7_final.a   FunSDK_arm64_final.a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐