美文网首页
iOS开发解决项目中与第三方含有重复文件的方法

iOS开发解决项目中与第三方含有重复文件的方法

作者: 綪天de汰陽 | 来源:发表于2019-08-21 09:47 被阅读0次

    最近使用第三方静态库是遇到一个问题,静态库中含有Reachability文件,而我的项目中也含有Reachability文件,而第三方的项目中也有这个文件。

    解决方法

    image.png

    首先找到含有重复文件的静态库,使用终端查看静态库的架构信息

    lipo -info test.a

    得到输出信息如下:


    image.png

    接下来分平台移除掉重复文件

    1. 取出armv7平台的包,存储到新建的armv7文件夹中

    lipo test.a -thin armv7 -output armv7/armv7.a

    1. 查看取出的库中所包含的文件列表

    ar -t armv7/armv7.a


    image.png

    3.解压出armv7.a Object File 即.o文件

    cd armv7
    ar xv armv7.a

    image.png
    1. 找到重复的.o文件并删除,可使用命令删除,也可以直接到文件夹中找到并删除

    2. 删除掉重复的文件后重新打包成armv7.a文件

    cd ../
    ar rcs armv7.a armv7/*.o

    image.png
    这样就得到了新的armv7.a文件
    1. 分别对arm64、armv7s平台的文件重复做1、2、3、4、5操作

    2. 将修改后的多平台文件合并成一个

    lipo -create armv7.a arm64.a armv7s.a -output newTest.a

    1. 修改后的newTest.a文件拉到项目中原文件夹下替换掉原文件即可

    第二种解决方法

    在工程项目中Build Settings--->Other Linker Flags中添加-dead_strip,如果Other Linker Flags中含有-all_load,不可贸然删除掉,此时建议使用上面的方式,删除相同的.o文件。

    相关文章

      网友评论

          本文标题:iOS开发解决项目中与第三方含有重复文件的方法

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