美文网首页
iOS开发引入第三方库之间冲突的处理

iOS开发引入第三方库之间冲突的处理

作者: 爱闹的凡 | 来源:发表于2018-04-17 14:46 被阅读19次

    1、.a中可能包含三种属性的文件 可通过控制台 xcrun -sdk iphoneos lipo -info libx.a 查看

    arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
    
    armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
    
    armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
    

    2、首先分离libx.a中的armv7

    xcrun -sdk iphoneos lipo -extract_family armv7 -output libx-armv7.a libx.a

    3、分离后得到的libx-armv7.a,将其分解得到其所有的.o文件

    ar -x libx-armv7.a
    

    4、现在得到其所有的.o文件,删除与项目中冲突的.o,把剩下的.o文件合成新的newlibx.a-armv7.a

    libtool -static -o ../newlibx-armv7.a *.o
    

    5、到这里armv7类型的.o文件冲突接本解决了,接下来继续分离arm64类型的.a

    lipo libe.a -thin arm64 -output libx-arm64.a
    

    6、同理分解libx-arm64

    ar -x libx-armv64.a
    

    7、得到所有的.o文件,删除冲突的文件,合成心得newlibx-arm64.a

    libtool -static -o ../newlibx-arm64.a *.o
    

    8、将newlibx-armv7和newlibx-arm64合并成新的.a

    lipo -create -output newlibx.a newlibx-armv7.a newlibx-arm64.a
    

    9、将最后得到的newlibx.a引入工程,冲突解决!

    相关文章

      网友评论

          本文标题:iOS开发引入第三方库之间冲突的处理

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