集成两方sdk出现库文件冲突解决

1.首先把其中一个冲突的库文件拷贝到一个新的文件夹里,用命令cd切换到当前文件夹,用 lipo -info libx.a(这个.a文件就是冲突的库文件名)查看是否支持多平台,查看包信息:lipo -info libx.a 如果提示fat file,例如armv7,arm64等,如果支持多平台,需要我们逐一进行解包重打包操作,如果不支持多平台,只需执行一次以免的操作[1-6]即可。支持多平台armv7执行[1-6]后,把下面的armv7换成arm64在执行一遍。


1. 创建临时文件夹,用于存放armv7平台解压后的.o文件:mkdir armv7

2. 取出armv7平台的包:lipo libx.a -thin armv7 -output armv7/libx-armv7.a

3. 查看库中所包含的文件列表:ar -t armv7/libx-armv7.a

4. 解压出object file(即.o后缀文件):cd armv7 && ar xv libx-armv7.a

5. 找到冲突的包(比如ASI),删除掉。命令: rm 冲突的类

              比如WXApiObject.o冲突了,就用命令: rm WXApiObject.o

        6. 重新打包obje,把.o文件合成.a文件的命令  在当前文件夹下或者使用全路径  libtool -static -o ../libx-armv7.a *.o  .o文件中合并成静态库:


      执行完上述操作之后,在armv7和arm64文件夹下各有一个.a文件,我们需要把这个.a文件合成一个来支持多平台。

.把两个支持不同平台的.a文件合成一个的命令  把文件放到一个文件夹里   或则使用全路径   

lipo -create -output libx.a(最终的.a文件) libx-armv7.a libx-arm64.a 



framework 冲突也是一样,把framework里编译的没有后缀的文件,修改后缀为.a文件,剩下的按.a文件处理,最后把处理后.a文件去掉后缀,在替换成原来的没有后缀的文件,注意去掉后缀的时候有可能只是隐藏了这个.a后缀,查看文件简介确认。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值