先先準備一個靜態庫.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文件只能看到一些函數而不是源碼。如下: