先先准备一个静态库.a文件,比如叫libWeiboSDK.a,放在桌面的test目录里。
1、首先进入到libWeiboSDK.a文件夹 file一下libWeiboSDK.a,看一下该文件包含几种arch。
执行: cd /Users/dotnar/Desktop/Test
file libWeiboSDK.a
打印:
libWeiboSDK.a: Mach-O universal binary with 4 architectures: [arm_v7:current ar archive] [x86_64]
libWeiboSDK.a (for architecture armv7):current ar archive
libWeiboSDK.a (for architecture arm64):current ar archive
libWeiboSDK.a (for architecture i386):current ar archive
libWeiboSDK.a (for architecture x86_64):current ar archive
可以看到该文件包含四种arch,分别是armv7、arm64、i386、x86_64
2、抽离其中一个arch ,由于下面抽离object的时候必须是要单一的库,所以这里我们之抽出armv7并命名为armv7.a:
执行:lipo libWeiboSDK.a -thin armv7 -output armv7.a
这时候应该在test目录下多了一个v7.a文件。
3、抽离.a文件的object
执行:ar -x armv7.a
你会发现在test目录下多了很多.o文件
4、转换.o文件 (如下的NSData+WBSDKBase64.o文件)
执行:nm NSData+WBSDKBase64.o> NSData+WBSDKBase64.m
此时你会发现生成了一个NSData+WBSDKBase64.m
到此就解压完成,不过此时的.m文件只能看到一些函数而不是源码。如下:
网友评论