iOS 解压打包静态库命令

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

 

posted on 2016-11-11 14:27  ximenchuixie  阅读(1573)  评论(0编辑  收藏  举报