zoukankan      html  css  js  c++  java
  • iOS 处理第三方SDK冲突问题

    在一个项目中要集成新颜第三方,需要用到明镜与设备指纹,可能是版本有些老,两个SDK集成进去后发现冲突了,如下图所示,两个里面有很多重复的SDK,于是就考虑修改第三方静态库,把其中的重复文件为删除掉。

    方法如下:

    1.打开终端cd到所要修改的.a库所在文件目录(最好备份出来到专门的目录)

    2.查看静态库文件包含的架构

    查看.a库文件所包含的架构库命令:
    lipo -info XXXXX.a
    看看有什么架构的编译库,比如:

    lipo -info XYRiskAssessment-iOS-1.0.0.a

    根据结果可以看出包含armv7 x86_64 arm64这几个库,冲突文件必须从必须从每个架构的库里面相应删除才行。

    3.从fat文件里面分离出来各个架构的库。

    命令:lipo -thin armv7 XXXXX.a -output XXXXX-armv7.a

    比如:

    lipo -thin armv7 XYRiskAssessment-iOS-1.0.0.a -output armv7.a

    之后可以看到文件目录下已经分离出来armv7.a文件,同理再分理出x86_64 arm64文件

    4.查看库中所包含的文件列表

    命令为:

    ar -t armv7.a

    5.如果不清楚两个sdk都有哪些文件重复,可以按照以上步骤,查看下XinYanDeviceSDK.framework这个sdk都包含哪些文件,如下所示

    6.从每个架构的.a文件中删除与其他sdk冲突的.o文件

    命令::ar -d -sv XXXXX-armv7.a XXXX.o

    比如:

    ar -d -sv arm64.a XinYanDeviceSDK.o

    7.当里面的重复文件删除完之后,重新生成fat文件

    和并静态库的命令:
    lipo -create XXXXX-armv7.a XXXXX-armv7s.a (加上所有架构的编译库) -output XXXXX-NOFfmpeg.a

    比如:

    lipo -create armv7.a x86_64.a arm64.a  -output XYRiskAssessment-iOS-1.0.0.a

    最后将这个新生成的静态库文件替换掉之前的,发现冲突解决。

    说到最后,这篇文章主要记录处理第三方冲突问题的解决,后面发现新颜提供了新版本的第三方,无需导入两个sdk,所以开发中遇到第三方sdk冲突问题,还是建议大家先问下他们的技术人员咨询下~~~

  • 相关阅读:
    linux 进程操作脚本
    go 项目监听重启
    go 小题
    beego 基础
    beego 接口开发
    beego 安装
    mongo curd
    html的学习(一)
    ssl
    java编码的学习
  • 原文地址:https://www.cnblogs.com/cui-cui/p/10299309.html
Copyright © 2011-2022 走看看