接下来的步骤以.a为例,.framework其实是个文件夹,底下的同名文件可以当.a处理。
1、查看.a支持哪些平台:lipo -info xxx.a
2、在.a目录下创建文件夹arm64:mkdir arm64
3、提取.a中arm64的包:lipo xxx.a -thin arm64 -output arm64/xxx.a
4、查看提取出的包中含有哪些文件:ar -t arm64/xxx.a
5、解压出包中的文件:cd arm64 && ar xv xxx.a
6、删除冲突的.o文件:例如 rm AFHTTPSessionManager.o
7、重新打包成.a:cd ../ && ar rcs xxx_arm64 arm64/*.o
8、原.a支持的其他平台(armv7、armv7s、i386、x86_64),按以上6个步骤逐一执行一次。
9、合并前8个步骤生成的独立平台的包:lipo -create xxx_arm64.a xxx_armv7.a -output xxx_new.a
10、xxx_new.a即最终去除冲突类文件的.a文件,更改文件名为xxx.a并替换项目中的原.a文件即可成功编译。