最近項(xiàng)目里在集成三方庫的時(shí)候出現(xiàn)了兩個(gè)庫文件沖突的問題。A庫的靜態(tài)包里 包含了util.o文件 B庫是個(gè)動(dòng)態(tài)庫,也包含了個(gè)util.o文件。拆分刪掉了A庫里的沖突文件并重新生成了A庫,解決了問題,記錄下解決方案,以作后用。

在米林等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,米林網(wǎng)站建設(shè)費(fèi)用合理。
打開命令行工具:
輸出結(jié)果為:
得到四個(gè)文件,如圖:
查詢結(jié)果如下圖所示(沖突文件為arm64架構(gòu)下的Utils.o文件)
至此,整個(gè)流程完成。沖突問題解決~
公司開發(fā)的SDK,是集成了各個(gè)平臺的商品,包括購買、分享、提現(xiàn)等功能,為了加快進(jìn)度,我是使用了一些第三方。但是有些需求,比如分享到微信朋友圈或者還有,必須用到微信的SDK。考慮到后期的維護(hù)成本和集成,筆者采用了cocoapods管理第三方庫。
筆者有片文章專門介紹SDK的開發(fā)步驟的,大家可以參考,我這里就直接進(jìn)入主題了。
首先,你創(chuàng)建一個(gè)靜態(tài)的framework工程MyTestSDK,把這個(gè)工程集成cocpapods,至于如何集成cocpapods,網(wǎng)上有教程,自己搜索。這個(gè)時(shí)候把你項(xiàng)目中所用的第三方庫添加到Podfile文件中,然后 pod install。這個(gè)時(shí)候你command + B 編譯運(yùn)行,如果你的第三方庫中還有Bundle資源,那么編譯后,第三方庫的bundle資源會被編譯,一起放到Products文件下的framework文件中,右鍵Show in Finder就會看到。如下圖所示的MBProgressHUD文件夾,里面都是MBProgressHUD第三方的資源文件。
然后把你的項(xiàng)目放入SDK工程中,編譯運(yùn)行一下,看看有沒有錯(cuò)誤。之所以先把SDK工程選用cocoapods管理,就是怕你的項(xiàng)目放入SDK中運(yùn)行報(bào)錯(cuò)。沒有任何問題,直接編譯即可。
由于SDK中的第三方是通過cocoapods管理的,所以接入者的項(xiàng)目也要用cocoapods管理。
1:把SDK工程中,Products文件夾下的framework文件copy到項(xiàng)目中,最好項(xiàng)目中建立一個(gè)文件夾,專門放SDK和bundle。我是放到了一個(gè)文件夾中,方便分類尋找。如下圖所示:
2:打開終端,cd到SDK所在的文件夾下,執(zhí)行如下命令,回車,創(chuàng)建spec文件。
其中,MyTestSDK是你的SDK名稱。
創(chuàng)建出來的spec文件,是個(gè)很長的文件,但是大部分都是注釋的,我這里只提取了有用的信息展示出來:
然后把spec中依賴的第三方庫,逐個(gè)加入到項(xiàng)目中的Podfie文件中。然后 終端打開,cd到自己的項(xiàng)目中,pod install即可。
本人親自測試過的,No Problem。當(dāng)初感覺SDK如果依賴了第三方庫,接入的項(xiàng)目中也有同樣的第三方庫,會不會沖突啊,感覺好難搞啊。事實(shí)證明,通過spec進(jìn)行依賴,可以很好的解決這個(gè)問題,也就沒有那么麻煩了。
首次開發(fā)SDK還是遇到了很多問題,運(yùn)行出現(xiàn)很多bug,但是最后還是一一解決了,就是沒有記錄下bug和解決發(fā)的方法。
1;path路徑不對,就會報(bào)錯(cuò) ,如下
是因?yàn)槲野崖窂綄懗闪耍?/p>
其實(shí)正確的寫法是:把“/”放在前面
2:SDK中有第三方,但是項(xiàng)目中的Podfile里面沒有這個(gè)第三方,報(bào)錯(cuò)如下所示:
解決辦法是就是在項(xiàng)目中的 Podfile里面加入缺失的第三方庫,重新 pod install。
框架圖
主要類關(guān)系圖
主要類介紹:
AFURLSessionManager
推薦參考這篇文章 AFNetworking源碼分析 ,從源碼分析角度分析AFNetworking的實(shí)際作用。關(guān)于AF的相關(guān)博文網(wǎng)上非常多,跟著文章指導(dǎo)動(dòng)手實(shí)踐一番,要比只看文章來的容易點(diǎn)。
在之前文章《圖片緩存框架》內(nèi)容符合SDWebImage的設(shè)計(jì)原理。從SDWebImage學(xué)習(xí)緩存框架的設(shè)計(jì)思路,另外也可以查看YYImageCache也許會有不同的收獲。推薦文章[《SDWebImage源碼解析
ReactiveCocoa(簡稱為RAC),是由Github開源的一個(gè)應(yīng)用于iOS和OS開發(fā)的新框架,Cocoa是蘋果整套框架的簡稱,因此很多蘋果框架喜歡以Cocoa結(jié)尾。
信號 :代表一連串的狀態(tài),RAC中的核心類RACSignal
在狀態(tài)改變時(shí),對應(yīng)的訂閱者RACSubscriber就會收到通知執(zhí)行相應(yīng)的指令。 推薦優(yōu)秀的文章
AsyncDisplayKit 是 Facebook 開源的一個(gè)用于保持 iOS 界面流暢的庫。可以查看優(yōu)秀的博文 AsyncDisplayKit-看云文檔
參考文章
一、創(chuàng)建工程并新建Framework Target
二、創(chuàng)建測試工程
Framework制作好了,我們需要一個(gè)Target測試一下吧。那么直接在剛剛創(chuàng)建的這個(gè)工程里面,新建一個(gè)Single View APP的Target就好了。
三、引入第三方庫
如果我們在制作Framework的時(shí)候,需要用到第三方庫怎么辦呢?網(wǎng)上有輪子,而且有專人維護(hù),總比我們自己造的強(qiáng)。但是如果公司有條件的話,最好是不引入第三方庫。
我們在引入第三方庫的時(shí)候,使用cocoapods進(jìn)行管理,假設(shè)我們的SDK需要AFNetworking這個(gè)庫,按下面操作引入。
四、創(chuàng)建Framework打包腳本
五、運(yùn)行
六、導(dǎo)出Framework給他人使用
本文完結(jié)。喜歡點(diǎn)個(gè)喜歡吧~~
標(biāo)題名稱:ios開發(fā)三方庫,ios三方應(yīng)用
URL分享:http://chinadenli.net/article3/dsgijos.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)