iOS 打包靜態(tài)庫.a文件(真機(jī)版 + 虛擬機(jī))
我們以打包IOS開發(fā)中封裝的高地地圖基礎(chǔ)功能包 GDMap為例局雄。
1>我們需要準(zhǔn)備好需要打包的GDMap
2>接下來我們開始新建一個(gè)工程文件取名GDMap
3>刪掉無用自動(dòng)生成的.h 和.m 文件,把準(zhǔn)備好的GDMap拖入工程中炬搭,注意文件放在一級(jí)目錄下宫盔。
4>接下來我們選擇出來需要暴露出來的頭文件.h
我選擇暴露出所有的頭文件如下圖
5>接下來我們配置下工程文件,修改
Product->Scheme-> Edit Scheme下 為 Release
6>配置完之后我們就可以選擇真機(jī)進(jìn)行運(yùn)行在運(yùn)行后,再虛擬機(jī)運(yùn)行一次灼芭,我們找到生成的.a文件右鍵選擇show in finder就可以了。
7>合并兩個(gè).a 文件巍佑,使其能夠同時(shí)在模擬器及真機(jī)上使用
lipo -create 要合的兩個(gè)文件1路徑 要合的兩個(gè)文件2路徑 -output .../Desktop/GDMap.a(生成路徑)
注意:
選擇 編譯的設(shè)備,iOS Device 編譯出來的是真機(jī)的句狼,選擇? 模擬器 編譯出來的是模擬器版本
如果使用別人的,不知道他是通過什么方式編譯來的〕锿拢可以通過 終端命令行來查看
lipo -info? 要查看的文件的路徑(直接拖過來)
armv7 arm64 真機(jī)
i386 模擬器
使用的時(shí)候:
添加靜態(tài)庫.a文件到工程中去秘遏,同時(shí)添加.h文件
通過查看.h文件來使用這個(gè)靜態(tài)庫
出現(xiàn)如下靜態(tài)庫錯(cuò)誤:使用的靜態(tài)庫的架構(gòu)不對(duì)
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)
錯(cuò)誤:
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
我可以接受失敗,但我絕對(duì)不能接受未曾奮斗過的自己