lipo http://www.cnblogs.com/tekkaman/archive/2013/03/01/2939198.html
ar http://www.thegeekstuff.com/2010/08/ar-command-examples/
在引用静态库的时候若想查看静态库的内容,可用以下两个命令 lipo, ar
lipo可以解压出universal binary文件的内容,universal binary文件为包含多个架构的二进制文件
例: 假设 libTest.a 为一个universal binary,执行file libTest.a命令可能发现其中可能包含多种架构:
libTest.a (for architecture armv7): current ar archive random library
libTest.a (for architecture i386): current ar archive random library
libTest.a (for architecture x86_64): current ar archive random library
libTest.a (for architecture arm64): current ar archive random library
或者执行lipo -info libTest.a命令:
Architectures in the fat file: libTest.a are: armv7 i386 x86_64 arm64
若想将某一个架构的文件取出,假设要取出 x86_64架构的文件,输出文件名为x86_64,可执行
lipo -thin x86_64 libTest.a -output x86_64
此时会得到一个x86_64文件
如果想查看x86_64库中含有哪些文件,可用ar命令
ar -t x86_64
如果想解压出x86_64压缩文件中的内容,可执行
ar -x x86_64
不过解压出的文件都会在当前文件夹中
如果想删除x86_64中的某个文件,假设其中包含一个TalkingData.o文件,我们想将它删除,可执行
ar -d x86_64 TalkingData.o
如果在x86_64中增加某个文件,假设要增加一个TalkingData2.o文件,可执行
ar -r x86_64 TalkingData2.o
将x86_64重新打包成universal binary文件,继续用lipo命令
lipo -create x86_64 -output libTest2.a
lipo命令可以将多个单架构文件打包成universal binary文件
例:有两个单架构文件 x86_64 armv7,如果要把它们打包成一个libTest3.a,可执行
lipo -create x86_64 armv7 -output libTest2.a