多个.a 文件包含相同类问题

问题   iOS   多个.a文件  包含了相同的类文件  假设是AA.a文件和BB.a文件

报错  duplicate symbol _xxx in

解决方法

步骤1、将AA.a包分别按照不同的架构(armv7、armv7s、arm64)得到对应的瘦身后的.a库文件

lipo AA.a -thin arm64 -output AA-arm64.a


步骤2、按照不同架构中的某个架构的.a解压    新建文件夹cd到对应的文件夹后解压上级目录下上个步骤得到的.a库文件会得到.o的目标文件

ar -x ../AA-arm64.a


步骤3、重复上面两步把BB.a  文件也按照不同的架构解压,在不同文件夹下面得到对应的.o的目标文件


步骤4、把AA-arm64.a和BB-arm64.a架构瘦身解压后得到的.o文件  进行合并(全选其中一个文件夹,复制到另一个区   肯定会有相同的.o文件)


步骤5、把合并后的.o文件夹里面的所有文件生成新的.a文件(这是就可以测试了,上述步骤没有问题的话就可以用5s以上的机型跑了)

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


步骤6、合并步骤5得到的不同架构下面的新的.a文件  (最后使用new.a   把armv7、armv7s、arm64、i386都进行合并)

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

你可能感兴趣的:(多个.a 文件包含相同类问题)