iOS 打包靜態類庫 lib.a

weixin_34015860發表於2014-07-14

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就是最後,真機版和模擬器版合併的版本;

 

相關文章