查看库是否是动态库
如果是动态库则会有 Mach-O dynamically linked shared library标记
file xxxx.a
file xxxx.framework/xxxx
lipo
查看库支持多少 CPU 架构
lipo -i xxxx.framework/xxxx
Architectures in the fat file: xxxx are: armv7 armv7s arm64
lipo -create xxx.a xxx.a -output xxx.a合成一个库的两个不同CPU架构的库文件为一个
lipo xxx.a -thin armv7 -output armv7.a拆分提取一个库的CPU架构,从库中提取armv7架构保存
lipo xxx.a -thin arm64 -output arm64.a从库中提取arm64架构保存
lipo -detailed_info xxx.a查看可执行文件文件头详细信息
ar
ar -x xxx.a获取链接前.o文件
libtool
libtool -static -o ../xxx.a *.o链接合并.o文件为.a文件
otool
otool -L libswiftCore.dylib查看当前app或库所使用的iOS系统的动态库
查看库包含的架构信息 otool -o /framework路径/xxx.framework/xxx
反编译: otool -tV xxxx.framework/xxxx
反编译可以说是个逆向常用的比较黑的操作,注意:此命令将输出所有汇编代码,会比较长。
检查framework是否支持bitcodeotool -l xxxx | grep __LLVM | wc -l打印数值大于0则支持bitcode
nm
nm是names的缩写, nm命令主要是用来列出某些文件中的符号(函数和变量等)。因为比较长,也不列出了。
创建动态库+BITCODE