如何辨别.framework是动态库还是静态库

一、iOS指令集
1.移动设备指令集
(1)arm64
iphone机型:iphone Xs Max| iphone Xs | iphone XR | iphone X| iphone8s plus | iphone 8s | iphone8 plus | iphone8 | iphone7s plus | iphone7s | iphone6s plus | iphone 6s |iphone SE | iphone5s
ipad机型:iPad Pro | iPad Air2 | iPad Air
ipad mini机型:iPadmini2 | iPadmini3 | iPadmini4

(2)armv7s:
iphone机型:iPhone5|iPhone5C
ipad机型:iPad4(iPad with Retina Display)
iPad mini机型:无

(3)armv7:
iphone机型:iPhone4|iPhone4S
ipad机型:iPad|iPad2|iPad3(The New iPad)
iPad mini机型:iPad mini

2.mac指令集
i386(32位) | x86_64(64位)

二、判断.framework是静态库还是动态库
(1)cd xx.framework
(2)file xx 注释:xx为.framwork下的二进制文件
(3)判断:静态库包含“current ar archive random library”字样。动态库包含“dynamically linked shared library”字样
(4)查看库所支持的指令集,如arm_v7,x86_64
如图:


三、动态库、静态库合并(动态库、静态库同样方法)
1.合并
(1)终端输入如下指令
lipo -create A的二进制文件路径 B的二进制文件路径 -output 新的二进制文件路径
注意:是二进制文件,不是.framework。路径通过拖拽即可
如图:


(2)删除合并前的指令集,并且保证新合并的指令集与以前的名字一致。
2.拆分
(1)终端指令如下
lipo A的二进制文件路径 -thin 指令集(i386,x86_64,arm64,arm_v7等) -output B的二进制文件路径
如图:

你可能感兴趣的:(如何辨别.framework是动态库还是静态库)