iOS 打包靜態庫.a文件(真機版 + 虛擬機)


我們以打包IOS開發中封裝的高地地圖基礎功能包 GDMap為例。

 1>我們需要准備好需要打包的GDMap

 
 

2>接下來我們開始新建一個工程文件取名GDMap

 


 

 

3>刪掉無用自動生成的.h 和.m 文件,把准備好的GDMap拖入工程中,注意文件放在一級目錄下。

 

4>接下來我們選擇出來需要暴露出來的頭文件.h

 

我選擇暴露出所有的頭文件如下圖

 

5>接下來我們配置下工程文件,修改

 

Product->Scheme-> Edit Scheme下 為 Release 

 

 

6>配置完之后我們就可以選擇真機進行運行在運行后,再虛擬機運行一次,我們找到生成的.a文件右鍵選擇show in finder就可以了。

 

7>合並兩個.a 文件,使其能夠同時在模擬器及真機上使用

lipo -create 要合的兩個文件1路徑 要合的兩個文件2路徑 -output .../Desktop/GDMap.a(生成路徑)

注意:

選擇 編譯的設備,iOS Device 編譯出來的是真機的,選擇  模擬器 編譯出來的是模擬器版本

如果使用別人的,不知道他是通過什么方式編譯來的。可以通過 終端命令行來查看


lipo -info  要查看的文件的路徑(直接拖過來)

armv7 arm64 真機

i386 模擬器


使用的時候:

添加靜態庫.a文件到工程中去,同時添加.h文件

通過查看.h文件來使用這個靜態庫

 

出現如下靜態庫錯誤:使用的靜態庫的架構不對

Undefined symbols for architecture i386:

  "_OBJC_CLASS_$_StaticLibrary", referenced from:

      objc-class-ref in ViewController.o

ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code 1 (use -v to see invocation)

錯誤:

xcrun: error: active developer path ("/Users/XJW/Desktop/Xcode.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`)  

解決方法:

sudo xcode-select --switch /Applications/Xcode.app

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM