一、概念了解
1.什么是庫?
庫是共享程序代碼的方式,一般分為靜態(tài)庫和動態(tài)庫。
2.靜態(tài)庫和動態(tài)庫的區(qū)別
靜態(tài)庫:鏈接時完整地拷貝至可執(zhí)行文件中,被多次使用就有多份拷貝。靜態(tài)庫形式有.a和.framework兩種形式
動態(tài)庫:鏈接時不復制,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存,供程序調用,系統(tǒng)只加載一次,多個程序公用,節(jié)省內(nèi)存。動態(tài)庫形式有.dylib和.framework形式。
3.注意:系統(tǒng)的.framework是動態(tài)庫,我們自己建立的.framework是靜態(tài)庫。
- .a和.framework的區(qū)別
.a是一個純二進制文件,.a文件不能直接使用,要配合.h文件使用
.framework中除了有二進制文件之外還有資源文件。.framework可以直接使用
5.為什么要使用靜態(tài)庫
方便共享代碼,便于合理使用;
和別人分享你的代碼庫,但不想讓別人看到你代碼的實現(xiàn);
開發(fā)第三方SDK的需要。
.framework的封裝和.a的封裝差不多,.a封裝可參考http://www.lxweimin.com/p/2ae38070275a
下面講下.framework封裝的具體過程
二、封裝過程
1.創(chuàng)建一個工程,在創(chuàng)建時選擇下圖所標注的選項
2.創(chuàng)建好工程后,創(chuàng)建自己的工具類,如下圖所示
3.配置系統(tǒng)參數(shù),選中工程文件--->build setting----->linking
4.公開你需要公開的頭文件,build Phases ---->Headers
5.進入ZZFrameworkTest.h文件中將你要公開的.h文件引入
6.打包.framework,先選中模擬器,編譯,再選中真機,編譯程序,在工程中找到framework文件---->show in finder,會找到如下圖所示,一個是Debug-iphoneos(真機)下的,一個是Debug-iphonesimulator(模擬器)下的
7.通過終端將兩個framework文件合并。打開終端,輸入命令lipo -create 模擬器framework文件路徑(將文件拖入終端即可) 真機framework文件路徑 -output 合并的文件路徑,回車,如圖所示
注意,往終端拖文件時不是拖.framework文件,而是它文件下的一個不帶后綴名的一個文件
這樣你就合并生成了一個不帶后綴名的文件,將你合并的這個文件名改成你未合并之前的名字并替換掉原來真機里面的文件
8.將修改后的framework文件拷貝出來保存,這就是我們最終封裝好的文件
9.新建一個正常的工程,將封裝好的framework文件導入工程
并使用封裝好的方法
這就是封裝加使用的全部過程,參考文章http://www.lxweimin.com/p/87dbf57cfe4a