一、概念了解
1.什么是庫?
庫是共享程序代碼的方式,一般分為靜態(tài)庫和動(dòng)態(tài)庫。
2.靜態(tài)庫和動(dòng)態(tài)庫的區(qū)別
靜態(tài)庫:鏈接時(shí)完整地拷貝至可執(zhí)行文件中,被多次使用就有多份拷貝。靜態(tài)庫形式有.a和.framework兩種形式
動(dòng)態(tài)庫:鏈接時(shí)不復(fù)制,程序運(yùn)行時(shí)由系統(tǒng)動(dòng)態(tài)加載到內(nèi)存,供程序調(diào)用,系統(tǒng)只加載一次,多個(gè)程序公用,節(jié)省內(nèi)存。動(dòng)態(tài)庫形式有.dylib和.framework形式。
3.注意:系統(tǒng)的.framework是動(dòng)態(tài)庫,我們自己建立的.framework是靜態(tài)庫。
- .a和.framework的區(qū)別
.a是一個(gè)純二進(jìn)制文件,.a文件不能直接使用,要配合.h文件使用
.framework中除了有二進(jìn)制文件之外還有資源文件。.framework可以直接使用
5.為什么要使用靜態(tài)庫
方便共享代碼,便于合理使用;
和別人分享你的代碼庫,但不想讓別人看到你代碼的實(shí)現(xiàn);
開發(fā)第三方SDK的需要。
.framework的封裝和.a的封裝差不多,.a封裝可參考http://www.itdecent.cn/p/2ae38070275a
下面講下.framework封裝的具體過程
二、封裝過程
1.創(chuàng)建一個(gè)工程,在創(chuàng)建時(shí)選擇下圖所標(biāo)注的選項(xiàng)

2.創(chuàng)建好工程后,創(chuàng)建自己的工具類,如下圖所示

3.配置系統(tǒng)參數(shù),選中工程文件--->build setting----->linking


4.公開你需要公開的頭文件,build Phases ---->Headers

5.進(jìn)入ZZFrameworkTest.h文件中將你要公開的.h文件引入

6.打包.framework,先選中模擬器,編譯,再選中真機(jī),編譯程序,在工程中找到framework文件---->show in finder,會(huì)找到如下圖所示,一個(gè)是Debug-iphoneos(真機(jī))下的,一個(gè)是Debug-iphonesimulator(模擬器)下的

7.通過終端將兩個(gè)framework文件合并。打開終端,輸入命令lipo -create 模擬器framework文件路徑(將文件拖入終端即可) 真機(jī)framework文件路徑 -output 合并的文件路徑,回車,如圖所示

注意,往終端拖文件時(shí)不是拖.framework文件,而是它文件下的一個(gè)不帶后綴名的一個(gè)文件

這樣你就合并生成了一個(gè)不帶后綴名的文件,將你合并的這個(gè)文件名改成你未合并之前的名字并替換掉原來真機(jī)里面的文件

8.將修改后的framework文件拷貝出來保存,這就是我們最終封裝好的文件

9.新建一個(gè)正常的工程,將封裝好的framework文件導(dǎo)入工程
并使用封裝好的方法



這就是封裝加使用的全部過程,參考文章http://www.itdecent.cn/p/87dbf57cfe4a