iOS 处理第三方SDK冲突问题

摘要:
要在项目中集成新的第三方,您需要使用镜像和设备指纹。可能是版本有点旧。在集成两个SDK之后,发现了冲突。如下图所示,两个SDK中有许多重复的SDK。因此,我们考虑修改第三方静态库以删除重复的文件。最后,本文主要记录了第三方冲突的解决方案。后来发现,新研提供了一个新版本的第三方,而没有导入两个SDK。因此,当在开发中遇到第三方sdk冲突时,我们建议您先询问他们的技术人员~~~

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

iOS 处理第三方SDK冲突问题第1张

方法如下:

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

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

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

lipo -info XYRiskAssessment-iOS-1.0.0.a

iOS 处理第三方SDK冲突问题第2张

根据结果可以看出包含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文件

iOS 处理第三方SDK冲突问题第3张

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

命令为:

ar -t armv7.a

iOS 处理第三方SDK冲突问题第4张

5.如果不清楚两个sdk都有哪些文件重复,可以按照以上步骤,查看下XinYanDeviceSDK.framework这个sdk都包含哪些文件,如下所示iOS 处理第三方SDK冲突问题第5张

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

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

比如:

ar -d -sv arm64.a XinYanDeviceSDK.o

iOS 处理第三方SDK冲突问题第6张

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

免责声明:文章转载自《iOS 处理第三方SDK冲突问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Dubbo多版本nginx中配置proxy_pass下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CTO、技术总监、首席架构师的区别

转载说明:这篇文章,实用性非常强。工作,首先强调的应该是 分工和职责。 经常有创业公司老板来拜访我,常常会拜托给我一句话:帮我找一个CTO。 我解释的多了,所以想把这个写下来,看看你到底需要的应该是啥。 一、高级程序员 如果你是一个刚刚创业的公司,公司没有专职产品经理和项目经理,你就是公司的产品经理,你如果对你现在的开发员能力不满,那么你只需要的是...

Spring 核心技术与产品理念剖析【下】

3. Spring Cloud 蝶变重生 Spring 框架的升级演进都是围绕分层架构进行的,从简单到复杂,再回到简单的过程。如果我们没有经历过 Spring 最开始繁琐的配置,然后一步步精简,就根本体会不到为什么会有 Spring Boot。俗话说,乱世造英雄。在新旧时代交替阶段,原来统治世界的旧秩序正在慢慢失效,而新秩序尚未成型,那些建立或者依赖旧秩序...

前后端分离实践(一)

前言 最近这一段时间由于Nodejs的逐渐成熟和日趋稳定,越来越多的公司中的前端团队开始尝试使用Nodejs来练一下手,尝一尝鲜。 一般的做法都是将原本属于后端的一部分相对于业务不是很重要的功能迁移到Nodejs上面来,也有一些公司将NodeJS作为前后端分离的一个解决方案去施行。而像淘宝网这类的大型网站也很早的完成了前后端的分离,给我们这样的后来者提供了...

SDK更新

虽然国内google被墙了,但仍可利用国内的某些镜像网站实现Android SDK在线更新,使用方法如下: 1、启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options...』,弹出『Android SDK Manager - Settings』窗口; 2、在『Android SDK Manager - Sett...

Android应用中使用百度地图API定位自己的位置(二)

官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发人员们提供了例如以下类型的地图覆盖物: 我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自己定义位置图标)。 Poi搜索结果图层(PoiOverlay...

SDK的制作详解

一个简单的SDK制作是很容易的,复杂的sdk其实就和复杂化的应用一样,都是从简单开始的,这里介绍一下sdk的简单制作 步骤: 1.创建sdk,公开文件 2.编译、获取sdk文件 3.导入工程,配置文件 4.解决错误,完成 1.创建sdk,公开文件 然后起个需要的名字 创建出这样的sdk,自动生成的文件和普通工程的viewController一样都是可以...