首页 > 代码库 > 利用终端指令合并支持模拟器和真机的静态库

利用终端指令合并支持模拟器和真机的静态库

制作.a静态库时,需生成了支持模拟器和真机的静态库,然后在开发中我们在模拟器和真机上测试时,就需要来还更换静态库,造成极大的麻烦,因此,我们可以通过终端指令将支持模拟器和真机的静态库合并一个静态库,这样在模拟器和真机上都可以使用

当我们在模拟上使用真机的静态库时,就会报如下错误,这种错误我们在以后的开发中会经常遇到:

技术分享

该错误大体意思是该静态库不支持x86_64,原因是因为模拟器的处理器是x86_64架构的,而真机的都是采用的arm7,arm7s,arm64架构的,相反在真机上使用模拟器的静态库会报相反的错误

现在我们就将支持模拟器和真机的静态库通过终端指令合并为一个静态库

假设我们当前目录下有两个文件夹,一个为libDev,一个为libPro,两个文件夹下各有一个static.a静态库和一个xxx.h头文件

打开终端,进入libdev和libPro所在的目录

通过cd libDev进入libDev目录

通过lipo -info static.a指令查看当前静态库支持的平台如下

技术分享

同样,进入libPro目录,通过lipo -info static.a指令查看当前静态库支持的平台如下

技术分享

 

通过lipo -create libDev/static.a libPro/static.a -output common.a合并为一个静态库,common.a就是合并完的静态库,默认放在当前目录下

注意:虽然将真机和模拟器的静态库合并在一起之后,以后我们就不用关心当前是允许在模拟器还是真机了,但是如果在程序发布时还是建议大家使用真机的静态库,减少不必要的空间占用

(补充:生成的静态库有四个版本:真机-Debug版本,真机-Release版本,模拟器-Debug版本,模拟器-Release版本,在升级静态库时要注意些)

利用终端指令合并支持模拟器和真机的静态库