iOS 打包.framework

一、概念了解
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)庫。

  1. .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)

第一步.png

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

第二步.png

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

第三步.png
第三步(2).png

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

第四步.png

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

第五步.png

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

第六步.png

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

第七步.png

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


第七步(2).png

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

第七步(3).png

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

最后.png

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

第九步.png
第九步(1).png
第九步(2).png

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評(píng)論 25 709
  • 制作 .framework 靜態(tài)庫的步驟: 4、把 Podfile 中所有庫注釋掉然后 pod install,然...
    卡丁車手閱讀 2,572評(píng)論 0 1
  • 靜態(tài)庫與動(dòng)態(tài)庫的區(qū)別 首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進(jìn)制代碼,加上頭文件就可以供別...
    吃瓜群眾呀閱讀 12,331評(píng)論 3 42
  • 2016年須臾走過,這一年發(fā)生的事情如跑馬燈般從我的腦海略過,有酸澀,有甜蜜,有迷茫,有遺憾。 婚后生活意料之中的...
    鬼鬼醬0225閱讀 185評(píng)論 0 0
  • 昨天是我在晨讀群里晨讀的日子,照慣例,今天由我來進(jìn)行晨享。我特意選擇了愛溝通的內(nèi)容進(jìn)行了朗讀。因?yàn)樵跍贤ㄟ@方面我還...
    親子教育劉文君閱讀 299評(píng)論 8 5

友情鏈接更多精彩內(nèi)容