美文网首页
不同第三方库重复存在某一文件解决方案

不同第三方库重复存在某一文件解决方案

作者: LiteDeveloper | 来源:发表于2022-07-14 17:08 被阅读0次

    在集成三方库的时候出现了两个库文件冲突的问题。百度单号识别OCR与百度人脸识别SDK中均包含报错的同一个文件。解决方案就是需要拆分一个库,把这个库中的冲突文件删除然后重新生成即可。具体如下:

    拆分以libTradingSystem.a静态库操作为例,冲突文件以Utils.o文件为例

    1、首先检查lib架构,命令行输入:

    lipo -info /Users/liuxh/Desktop/lib/libTradingSystem.a

    输出结果如下,可以看到lib库支持的架构有哪些。

    2、依次拆分libTradingSystem.a架构 ,下面以amv7架构拆分为例,其他架构的需要一样操作。

    lipo /Users/liuxh/Desktop/libTradingSystem.a -thin armv7 -output /Users/liuxh/Desktop/libTradingSystem_armv7.a

    对libTradingSystem.a这个库,同时需要拆分x86_64、arm64。

    lipo /Users/liuxh/Desktop/lib/libTradingSystem.a -thin x86_64 -output /Users/liuxh/Desktop/lib/libTradingSystem_x86_64.a

    lipo /Users/liuxh/Desktop/lib/libTradingSystem.a  -thin arm64 output /Users/liuxh/Desktop/lib/libTradingSystem_arm64.a

    可以在output 对应的路径下看到下图文件:

    3、选择有冲突的架构(库文件冲突的时候在xcode中会显示是在哪种架构冲突),找到架构内的冲突文件。

    Ar -t /Users/liuxh/Desktop/lib/libTradingSystem_arm64.a

    查询结果如下图所示(冲突文件为arm64架构下的Utils.o文件)

    4、移除冲突文件

    Ar-dv/Users/liuxh/Desktop/lib/libTradingSystem_arm64.a Utils.o

    //冲突文件有多个可以这样写

    Ar-dv/Users/liuxh/Desktop/lib/libTradingSystem_arm64.a Utils.o Utils.o Utils.o Utils.o

    5、重新合并静态库

    lipo -creat /Users/liuxh/Desktop/lib/libTradingSystem_arm64.a /Users/liuxh/Desktop/lib/libTradingSystem_armv7.a /Users/liuxh/Desktop/lib/libTradingSystem_x86_64.a -output /Users/liuxh/Desktop/lib/libTradingSystem.a

    完成以上操作大功告成了,把重新合并的库替换进工程中就可以完美build了!!!

    相关文章

      网友评论

          本文标题:不同第三方库重复存在某一文件解决方案

          本文链接:https://www.haomeiwen.com/subject/lwhfirtx.html