打包靜態庫

2021-07-14 09:38:55 字數 1698 閱讀 2695

參考**:

1、首先生成模擬器下地.a靜態庫,通過命令lipo -info libtest.a 可知其architectures in the fat file: libtest.a are: i386 x86_64 ;

2、再生成device(真機)環境下地.a靜態庫,通過命令lipo -info libtest.a可知其architectures in the fat file: libtest.a are: armv7 arm64;

3、通過命令lipo -create ./simular/libtest.a ./releaseos/libtest.a -output ./libtest.a 可以生成在模擬器和真機環境下均可使用的靜態庫;

一. 新建乙個工程, 選擇靜態庫:

二, 可以看到, .a檔案為紅色

三. run, 如果連線測試的裝置為真機, 則生成的.a適用於真機, 在模擬器上執行會報錯, 如果連線的是模擬器, 則生成的.a適用於simulator, 真機無法執行, 如下:

四. 在.a檔案選擇show in finder, 可以看到:

在終端cd到.a所在目錄

cd /users/ligen/library/developer/xcode/deriveddata/nslogtest-gtmqbuimmqidapekcrujawraomwg/build/products/release-iphoneos/
執行命令:

lipo -info libnslogtest.a
如若是模擬器生成的.a會看到:

architectures in the fat file: libnslogtest.a are: i386 x86_64

如果是真機生成的.a, 可看到:

architectures in the fat file: libnslogtest.a are: armv7 arm64

五, 分別生成模擬器.a和真機用的.a後, 在終端合併成在模擬器和真機都適用的.a庫, 執行命令:

lipo -create /users/ligen/library/developer/xcode/deriveddata/nslogtest-gtmqbuimmqidapekcrujawraomwg/build/products/release-iphoneos/libnslogtest.a /users/ligen/library/developer/xcode/deriveddata/nslogtest-gtmqbuimmqidapekcrujawraomwg/build/products/release-iphonesimulator/libnslogtest.a -output /users/ligen/desktop/testprintlib.a

打包靜態庫,合併靜態庫

ios靜態庫 a 和framework 合併靜態庫 1,開啟終端,輸入lipo create release iphoneos libsbjson.a release iphonesimulator libsbjson.a output combine libsbjson.a 其中release i...

手動打包 a靜態庫

1.新建.a靜態庫工程 2.實現需要打包的類 3.編譯靜態庫 沒有編譯時是紅色,編譯成功後為黑色 當你選擇編譯器為模擬器時,編譯出來的就是模擬器版本.a靜態庫 當你選擇編譯器為裝置時,編譯出來的就是真機版本.a靜態庫 這時候就可以分別適配真機或者模擬器靜態庫了 但是為了方便我們通常會將兩個版本綜合到...

Objective C 打包靜態庫

objective c 打包靜態庫 ios庫簡介 ios中的所謂的庫,就是一些封裝好的 的集合,可以用來共享程式 的一種方式。在ios中庫,其實就是一些三方框架,並且這些庫一般都是靜態的,整合自定義動態庫過不了審核。複製 ios庫分類 開源所有 都是公開的,可見的 你可以看到.件裡的介面,也可以看到...