iOS 打包.a檔案

躍然發表於2014-10-27

1、新建一個 framework&library 庫。IOS 下的 cocoa touch static library。然後輸入 product name 為 libsql


2、把libsql.h 和libsql.m刪除。匯入ocsqlite.h和ocsqlite.c



3、修改scheme,設為release版本



4.

選譯 ios device 編譯執行。成功後將在目錄的 build/products/release-iphoneos/下產生一個 liblibsql.a 檔案。注,這裡產生的是真機使用的.a 檔案。
選擇iphonesimulator 進行編譯一次,同樣會在 build/products/release-iphonesimulator/下產生一個liblibsql.a 檔案。裡是虛擬機器使用的.a 檔案。

面來看一下這兩個檔案有什麼不同之處,使用 lipo -info 命令。開終端。
入到相應的目錄。進入相應目錄。
真機的:liblibsql.a 檔案資訊。

input file liblibsql.a is not a fat file
Non-fat file: liblibsql.a is architecture: armv7 

如圖:


模擬器的:liblibsql.a 檔案資訊。 

input file liblibsql.a is not a fat file
Non-fat file: liblibsql.a is architecture: i386 

如圖:


如果使用真機和模擬器通用,則需要將這兩個檔案合併,使用命令 lipocreate xxxx/liblibsql.a xxxxx/liblibsql.a -output libsql.a

同樣可以使用 lipo -info 來檢視這個合併的 libsql.a
可以看到 architectures in the fat file: libsql.a are: i386 armv7

OK,cheers,打包完成。 


相關文章