前言:
隨著公司業(yè)務(wù)的發(fā)展,代碼解耦模塊化是必然趨勢(shì)。功能模塊抽取封裝想必很多人都經(jīng)歷過(guò)。今天的主要目的不是談這些,是想記錄下在抽取網(wǎng)路服務(wù)層的過(guò)程中遇到的一些問(wèn)題。
目的:
抽出來(lái)的代碼放到任何一個(gè)新工程中都能正常使用。
過(guò)程
具體過(guò)程
- 既然不僅自己可以用,還要給別人用。那當(dāng)然不能給源碼,打包成靜態(tài)庫(kù)。
- 依賴三方庫(kù):“Socket.IO-Client-Swift” 和“JSONKit”,打包的時(shí)候當(dāng)讓不能把這些也打進(jìn)去。
1. 創(chuàng)建工程,過(guò)程可見(jiàn)http://www.itdecent.cn/p/beb9b658ce30
2. CocoaPods 集成

-
編譯一把會(huì)會(huì)很多錯(cuò)誤:
2B881C44-5AC3-44D8-A36A-42C667D0DFAB.png 直接fix,這是三方的JSONKit 報(bào)錯(cuò),應(yīng)該是蓋庫(kù)沒(méi)更新引起的,反正我們做的包運(yùn)行依賴于JSONKit,但是打包是沒(méi)有將這些三方的東西打進(jìn)去的,解決錯(cuò)誤是為了順利通過(guò)編譯。完了就能編譯通過(guò)。
-
添加我們自己需要打包的代碼
93F48982-928E-4C1C-A5FA-089F2573AD6B.png
編譯下回報(bào)錯(cuò),這里主要是因?yàn)橛械奈募荕RC的,設(shè)置下就好了。-fno-objc-arc
打包靜態(tài)庫(kù),方法參照http://www.itdecent.cn/p/beb9b658ce30 注意配置
Build Active Architecture Only = NO
支持的最低版本
-
設(shè)置暴露的頭文件
BuildPhase 點(diǎn)擊+ 添加New Header Fhase
CB537E37-6C73-4804-93DC-9CC3A3D80A30.png
我這里只要暴露一個(gè)包含所有接口的頭文件。
編譯結(jié)果
A4DCCC21-7D3B-471D-8026-2427107FCF50.png
3.測(cè)試

Run 會(huì)報(bào)錯(cuò),.JSONKit問(wèn)題,fix. 完成運(yùn)行會(huì)成功,但是最后會(huì)crash

報(bào)錯(cuò)找不到md5Hash方法,這是由于該方法寫在一個(gè)分類中,如果,第三方庫(kù)中有 category,需要設(shè)置為 -ObjC

在運(yùn)行大功告成

注意:在集成JSONKit時(shí)候,如果發(fā)現(xiàn)#import"JSONKit.h"找不到,即發(fā)現(xiàn)import的時(shí)候沒(méi)有提示JSONKit的文件,可以在target-Build Settings下修改“User Header Search Paths”項(xiàng),新增${SRCROOT}并選擇rcursive,



