iOS 打包靜態類庫 lib.a
流程
1: xcode---新建專案---iOS-framework&Library-----Cocoa touch Static Library----Next
2:建立工程之後---Target-----build phases----
在第一欄:Target Depencies裡面,新增該靜態庫的依賴
在第二欄:Complie Sources 裡面,新增要編譯的所有的 .m 檔案;
在第三欄:Link binary With 裡面,新增 靜態庫,依賴的,所有其他framework
在第四欄:Copy files 裡面,新增所有 展示給別人能夠看到的標頭檔案 .h 檔案,以及一些不能編譯的資原始檔,比如圖片,bundle資原始檔;
3:編譯為 模擬器的 靜態類庫;選擇一個模擬器編譯;
4:編譯為 真機版的 靜態庫;選擇 iOS Device 或是一個真機裝置 ,編譯;
5:在 product 目錄下,看到libxxx.a 右鍵,show in finder 即可找到對應編譯的庫
其中:iphoneos 目錄,為編譯的真機版本庫,iphonesimulator 目錄為模擬器下編譯的版本;
6:在 終端下 使用 lipo -info + lib.a檔案 ,檢視 編譯靜態類庫的 arm框架;
arm 框架對應的 iOS 裝置
armv6: iPhone, iPhone2, iPhone3G以及第一代和第二代iPod Touch
armv7:
iPhone3GS, iPhone4
iPad, iPad2, the new ipad
iPod touch 3G, iPod touch 4
armv7s: iPhone5,5c
arm64: iPhone5s
其中上圖:i386 x8664 指的是 mac 電腦模擬器;
7:使用 lipo -create 命令,把 真機版本和模擬器版本 合併成一個 libxxx.a
lipo -create path/simulator.a path/device.a -output path/libxxx.a
例如:
lipo -create Release-iphonesimulator/libOpenStack.a Release-iphoneos/libOpenStack.a -output libOpenStack.a
最後生成的 libOpenStack.a就是最後,真機版和模擬器版合併的版本;