呈現(xiàn)方式
靜態(tài)庫:.a, .framework
動態(tài)庫:.framework, .dylib(現(xiàn)在蘋果改成了.tbd)
區(qū)別
靜態(tài)庫
- 編譯時被鏈接到目標(biāo)代碼中宴树,如果有多處引用存在多次冗余拷貝甩十,占用內(nèi)存
- 需要依賴.a+.h+資源
動態(tài)庫
- 運行時調(diào)用,不會產(chǎn)生冗余調(diào)用潜支,占用內(nèi)存小
- framework文件可以直接使用
靜態(tài)庫架構(gòu)及機(jī)型系統(tǒng)對照
靜態(tài)庫對應(yīng)真機(jī)和模擬器兩種形式,以下先列舉下不同機(jī)型對應(yīng)的架構(gòu):
- 模擬器
- iPhone4s~5 : i386
- iPhone5s~6plus : x86_64
- 真機(jī)
- iPhone3gs~4s : armv7
- iPhone5~5c : armv7s
- iPhone5s~6plus : arm64
- 機(jī)型和系統(tǒng)對照
- 4s: iOS6+
- 5: iOS6+
- 5s/5c: iOS7+
- 6: iOS8+
- 6s: iOS9+
生成靜態(tài)庫步驟
-
選擇需要暴露的頭文件幅恋,Build Parses->Copy Files添加先嬉,生成后在目錄下的include里會找到這些文件
- command+B搞定
生成靜態(tài)庫命令
- 查看架構(gòu)信息
lipo -info xx.a/aa.a
- 合并靜態(tài)庫,主要場景是在模擬器和真機(jī)需要合并時光督,
lipo -create xx.a yy.a -output zz.a
- 分離靜態(tài)庫阳距,主要將三方提供的庫拆解成自己想要的,
lipo xx.a -thin armv7 -output yy.a