使用lipo命令合并静态(.a)文件

1、使用过百度地图SDK的童鞋应该有过这样的经历,在百度地图还提供静态文件的SDK版本中,官方提供了多个(.a)静态文件,官方告诉你,有些是在模拟器中使用的,有些是在真机上调试用的;

2、为什么会有区别呢?因为真机和模拟器的平台是不一样的,模拟器是基于PC的x86_64平台,而真机是arm64平台,总之就是因为CPU指令不同,因此在两个不同平台上程序不能通用,这也是为什么我们的模拟器不能安装AppStore下载的应用,道理是一样的;

3、既然不同,那么我们在模拟器调试和真机调试时都需要对这个静态文件换来换去的,好是麻烦,所以官方提示使用lipo命令将这两个静态文件合并成一个静态文件,这样就不用切来切去了。好,有童鞋要问了,既然可以合并为什么官方一开始不合并好,还要我们来做这事呢?问得好,原因很简单,包大小问题,两个合并在一起,占用空间几乎是大了一半,谁不希望App包尽可能的小呢,对吧。

4、下面进入正题,lipo命令怎么合并静态文件呢,一条命令解决:

1
SianMac:Desktop yusian$ lipo –create xx.a oo.a –output xxoo.a

5、附加一条参考命令,查看当前(.a)静态文件是合并过的还是没合并过的呢,即支持哪些平台,lipo的-info参数。

1
2
SianMac:Desktop yusian$ lipo -info xxoo.a 
Architectures in the fat file: xxoo.a are: armv7 i386 x86_64 arm64

这应该是合并过的静态文件,支持armv7 i386 x86_64 arm64平台。

Leave a Reply