静态文件即.a文件,由很多个.o文件组成。在项目开发中往往需要引用多个第三方的静态文件,这个时候可能会碰到静态文件冲突的问题。下面是解决问题的方法。
要用到的终端命令:(我们以armv7为例)
1.查看文件结构 lipo -info xxx.a(如果是fat file,代表支持多个平台,如 armv7,arm64等)。
2.创建文件夹,用于存放解压出来的.o文件 mkdir armv7
3.取出平台的包 lipo xxx.a -thin armv7 -output armv7/xxx-armv7.a
4.解压出.o文件(首先输入指令 cd armv7 到我们第二步创建的文件夹) ar xv xxx-armv7.a
5.删除冲突的包 rm ***.o
6.重新打包.o文件(首先输入指令 cd .. 回到上一级目录) ar rcs xxx-armv7.a armv7/*.o
将所支持的平台逐一进行1-6的操作,这时候你将得到所支持的每个平台的一个.a文件,然后我们将这些.a文件重新打包成fat file类型的.a文件就可以了。
终端输入 lipo -create xxx-armv7.a xxx-armv7s.a -output new_name.a(假设支持armv7 和armv7s 俩个平台)。