目的:
1>國內(nèi)的企業(yè),掌握有核心技術(shù)翼悴,同時是又希望更多的程序員來使用其技術(shù)缚够,因此采用"閉源"的方式開發(fā)使用
例如:百度地圖,友盟鹦赎,JPush等
2>在企業(yè)開發(fā)中谍椅,一些核心技術(shù)或者常用框架,出于安全性和穩(wěn)定性的考慮古话,也會提供靜態(tài)庫給程序員使用
制作.a靜態(tài)庫:
1.新建工程:選中第二個分類Framework & Library ->Cocoa TouchStatic Library,在這里面創(chuàng)建的工程雏吭,編譯后就會生成.a文件,直接拖拽到你的開發(fā)工程中就可以使用煞额。
2.暴露.h文件:單純編譯是沒辦法將.h文件暴露出來思恐,所以要做如下操作沾谜,Build Phases ->Copy Files(0 items) -> + ,添加自己要暴露出來的.h文件
3.編譯工程,生成.a文件:因為靜態(tài)庫在不支持的CPU架構(gòu)上運(yùn)行會報錯胀莹,所以為了你制作的.a文件在模擬器與真機(jī)都能正常運(yùn)行基跑,請在真機(jī)與模擬器環(huán)境下都編譯一次,生成兩個CPU架構(gòu)的.a文件描焰,在進(jìn)行合并媳否,在丟到項目中就不會報錯,下面是架構(gòu)與型號的對照表:
4.查看.a文件的CUP機(jī)構(gòu):打開命令符->cd 拖拽.a文件到命令符中,回車->lipo -info 靜態(tài)庫名稱荆秦,回車
5.設(shè)置能支持所有模擬器版本的.a文件:
6.設(shè)置成能支持所有真機(jī)和模擬器版本的.a文件:就是把模擬器的文件和真機(jī)的文件合并篱竭,重新命名。步驟:接著剛才的命令符 cd ..,會退到上個文件夾->lipo -create Debug-iphoneos(模擬器的.a文件夾)/libTools.a Debug-iphonesimulator(真機(jī)的.a文件夾)/libTools.a -output libTools.a(libTools.a:這個是你的類名步绸,你自己改成自己生產(chǎn)的.a文件名)
之后就大功告成了2舯啤!H拷椤B来!
#合并.a
lipo -create Debug-iphoneos/libTools.a Debug-iphonesimulator/libTools.a -output libTools.a
#合并.a的好處刑桑,開發(fā)過程中既可以在真機(jī)上調(diào)試氯质,也可以在模擬器上調(diào)試
#合并.a的壞處,如果靜態(tài)庫太大祠斧,合并打包后闻察,會非常大,因此很多第三方的靜態(tài)庫的.a是區(qū)分版本的
#今后在使用.a時一定注意版本
3.邊開發(fā)邊制作靜態(tài)庫
添加 個靜態(tài)庫的targets—>點擊項—>targets—>+
測試靜態(tài)庫:項—>項 的target—>general—>linked framework—>添加靜態(tài)庫
打包靜態(tài)庫—>選中項 靜態(tài)庫—>編譯(頭 件)
4.使 靜態(tài)庫的注意點:靜態(tài)庫有真機(jī)和模擬器(測試階段可以使 模擬器,發(fā)布階段使 真機(jī)).好處:資
源包變
靜態(tài)庫有Debug版和release版本(測試階段使Debug,發(fā)布階段使release).好處:資源包變/運(yùn) 速度變快/代碼進(jìn) 優(yōu)化
5.制作.framework庫1>動態(tài)庫(默認(rèn))
注意:如果項 中 到了動態(tài)庫進(jìn) 設(shè)置:項—>項 的target—> general—
>Embedded—>添加動態(tài)庫
2>靜態(tài)庫
制作靜態(tài)庫的修改配置:項—>靜態(tài)庫的target—>build setting—>搜索mach
—>static library
3>注意點
查看 個.framework靜態(tài)庫 持哪些架構(gòu):lipo -info framework件下 的 進(jìn)制
合并靜態(tài)庫:合并framework件下 的 進(jìn)制