Framework從零開(kāi)始

????一飲一啄,三年時(shí)光沒(méi)怎么學(xué)習(xí),看破后方知充實(shí)自己才是正道哈哈哈!

????之前弄過(guò).a包,這次新需求,想試試Framework,從零開(kāi)始爬坑。廢話不多說(shuō),直接開(kāi)始,不對(duì)的地方請(qǐng)指正,謝謝。


一:搭建測(cè)試demo。

1.新建主項(xiàng)目ZHEVM,這個(gè)不多說(shuō)了。

2.再項(xiàng)目中加入Framework,取名ZHEVMFramework:

3.新建需要暴露出來(lái)的頭文件,在ZHEVMHeader.h里面方法,ZHEVMHeader.m實(shí)現(xiàn)方法:

4.設(shè)置Framework參數(shù):

4.1:設(shè)置需要暴露的頭文件:Target 列表里選中 ZHEVMFramework,Build Phases->Headers。

4.2?Target 列表里選中 ZHEVMFramework,Build Settings->Architectures,配置支持的指令集,這里系統(tǒng)已經(jīng)默認(rèn)配置了 arm64和 armv7,所以只要增加一個(gè) armv7s 就可以了。

4.3 (重要) ??Linking→Mach-O Type 將Dynimic Library 改成 Static Library。不選會(huì)默認(rèn)動(dòng)態(tài)庫(kù)。

4.4 設(shè)置完就可以導(dǎo)入測(cè)試了。

二:資源文件bundle。

1.新建文件夾,改后綴為bundle,這個(gè)就不截圖了。

2.顯示包內(nèi)容,將資源文件移進(jìn)bundle。

3.使用:

ps:我使用了ZHEVMPrefixHeader.pch,取圖片文件時(shí)不用每次都去寫全部路徑。

三:處理第三方庫(kù)。PS:公司網(wǎng)絡(luò)原因,我這不使用pods,是pods的百度也有解決辦法。

? ? ? ? 將第三方庫(kù)導(dǎo)入進(jìn)framework的時(shí)候,add to的勾一定要取消掉,否則就會(huì)把第三方庫(kù)打包進(jìn)靜態(tài)庫(kù)了。 否則主項(xiàng)目也包含該第三方庫(kù)會(huì)因?yàn)闆_突導(dǎo)致項(xiàng)目奔潰。

四:導(dǎo)出Framework。

4.1 首先分別在模擬器和非模擬器狀態(tài)下各自編譯一遍。

4.2 選中ZHEVM.framework,然后Show in Finder找到對(duì)應(yīng)的 .framework文件(上級(jí)目錄可以看出是真機(jī)還是模擬器文件夾,iphoneos后綴代表真機(jī)版本,iphonesimulator后綴代表模擬器,真機(jī)和模擬器運(yùn)行成功的文件是在這倆個(gè)文件夾內(nèi)的。)

4.3?真機(jī)版和模擬器版framework合并。

4.3.1 打開(kāi)終端,輸入lipo -create,再Show in Finder找到對(duì)應(yīng)的真機(jī)版ZHEVM.framework文件之后,再找到下級(jí)的ZHEVMFramework,把文件拖到終端,再把模擬器版的ZHEVMFramework拖到終端,再輸入 -output 路徑。


合并Framework

4.3.2 復(fù)制一個(gè)真機(jī)版或者模擬器版的ZHEVM.framework到桌面,打開(kāi)文件夾,把上一步生成的ZHEVMFramework替換掉原先的就可以了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容