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

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开发引入第三方库之间冲突的处理)