打包.framework 靜態(tài)庫(kù)(含第三方)

最近項(xiàng)目臨近完成之際,需要把整體功能及網(wǎng)絡(luò)請(qǐng)求這塊做個(gè)sdk,如是乎開始了我的第一次打包之旅,遇到不少坑,所以做一個(gè)記錄吧。

按照常規(guī)流程走,其實(shí)打個(gè)包應(yīng)該是很容易的一件事情,我也是照著網(wǎng)上的流程走了一遍,倒是遇到了不少問題。因?yàn)槲乙虻陌锖械谌?,如果不然外面用也就算了,可是我感覺我外面還是會(huì)用的,所以說第三方需要暴露一下,期間就產(chǎn)生了一些問題。
先走一波流程吧:


首先創(chuàng)建一個(gè).framework.png

再做一些相應(yīng)的配置。

支持所有架構(gòu).png
最低版本.png
去掉無用代碼.png
可以減少.framework30%體積.png
選擇靜態(tài)庫(kù)。.png
1.png
2.png

再就將自己的功能文件以及第三方文件拖進(jìn)去:

講自己的功能文件及三方拖進(jìn)去.png

然后繼續(xù)走流程:

要公開的頭文件添加到這里.png
這里也可以添加公開頭文件.png
將你要暴露的頭文件寫到自動(dòng)創(chuàng)建的.h里面.png
選擇真機(jī),模擬器各編譯一次.png
打開文件夾.png
靜態(tài)庫(kù)就在這了.png

然后就是運(yùn)用終端命令將兩個(gè)庫(kù)合二為一 : lipo -create iphoneos下frameworkTest的路徑 simulator下frameworkTest的路徑 -output 新的路徑

終端命令合成.png

執(zhí)行命令后會(huì)生成一個(gè).lipo文件:

生成一個(gè).lipo文件.png

將生成的.lipo改名為靜態(tài)庫(kù)名,拖進(jìn)隨便一個(gè)framework覆蓋原來的,產(chǎn)生的新的framework就是你的靜態(tài)庫(kù)了。


最后的framework.png

這樣就就可以拿去用了,流程大概就這么走完了。說說我遇到的問題吧,比如我這里想要暴露XMNetworking,我將這個(gè)頭文件暴露出去了,當(dāng)我打完包引用的時(shí)候,直接就報(bào)錯(cuò)了,原因是找不到一些頭文件。

因?yàn)檫@里緊緊只是暴露XMNetworking.h是不夠的,只要你暴露的頭文件中引用了的頭文件你都需要暴露出去,不然都會(huì)找不到。

當(dāng)我搞定這個(gè)問題的時(shí)候,又遇到了新的問題,有些方法竟然也找不到,說我發(fā)了無法識(shí)別的方法,我不打包的時(shí)候明明是用的好好的,打完就找不到那方法我也是醉了,后面發(fā)現(xiàn)了,是第三方一個(gè)對(duì)象調(diào)的方法不是他自己的方法,而我這個(gè)第三方什么都沒有暴露出來,所以就找不到了,這個(gè)時(shí)候要換成這個(gè)對(duì)象自己的方法或者暴露這個(gè)三方才行。

如果打包的庫(kù)里有分類,記得引用的時(shí)候要-ObjC。

第一次打包靜態(tài)庫(kù),小小的記錄,小小的總結(jié)一下。

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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