我們以打包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