iOS 处理第三方SDK冲突问题 - Go语言中文社区

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冲突问题,还是建议大家先问下他们的技术人员咨询下~~~

 

转载于:https://www.cnblogs.com/cui-cui/p/10299309.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_30912051/article/details/98077923
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 00:32:30
  • 阅读 ( 1101 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢