
【一】前言:
每個(gè)語言發(fā)展到一個(gè)階段,就會(huì)出現(xiàn)相應(yīng)的依賴管理工具,或者說是中央代碼倉(cāng)庫(kù)。
比如Java的Maven,Python的Pip。而CocoaPods就是一個(gè)iOS項(xiàng)目中的第三方開源代碼管理工具。
以前的問題:
1、使用一個(gè)第三方SDK,需要在工程里面添加一堆配置,少添加一步配置就會(huì)報(bào)一大堆錯(cuò)誤。這個(gè)時(shí)候?yàn)榱伺挪樯倭四囊粋€(gè)步驟,只能從頭開始重做一遍,太浪費(fèi)時(shí)間和精力。有些配置還不好配置,就更使人煩躁郁悶了。
2、如果使用的第三方SDK有比較重要的更新,想使用最新的SDK只能到官方下載最新的SDK,重新導(dǎo)入到自己的項(xiàng)目工程中。
3、如果公司有多個(gè)項(xiàng)目,每一個(gè)工程都這樣配置一遍,這是多么痛苦的領(lǐng)悟呀。
它的優(yōu)勢(shì):
1、集成第三方庫(kù),不用我們手動(dòng)配置。
2、更新方便,一條命令搞定。
3、統(tǒng)一管理,簡(jiǎn)單高效,開發(fā)者集中精力于功能實(shí)現(xiàn)上,不用關(guān)注 太多其他的東西。
4、方便組件化(建立在私有庫(kù)基礎(chǔ)上)
預(yù)備知識(shí):
Cocoapods安裝和使用 和?GitHub的使用 這里無需多言?;A(chǔ)知識(shí),如果有疑問的可以自己百度處理。
【二】制作目錄:
先把大致流程要點(diǎn)總結(jié)一下:
1、GitHub創(chuàng)建共有庫(kù)
2、創(chuàng)建podspec文件
2.1、配置podspec文件
3、本地庫(kù)驗(yàn)證
4、推送打標(biāo)簽
5、驗(yàn)證podspec文件
6、注冊(cè),推送podspec到cocoapods,搜索驗(yàn)證
7、搜索驗(yàn)證
【三】具體步驟:
1、GitHub創(chuàng)建共有庫(kù)
打開GitHub,開始Create a new repository。具體如圖:

創(chuàng)建完成之后,克隆到本地,我這邊全程使用終端命令進(jìn)行操作。打開終端,具體操作如下:?

?cd Desktop/
git clone git@github.com:wnkpzzz/CZTestLibDemo.git
2、創(chuàng)建podspec文件

經(jīng)過上一個(gè)步驟,我們已經(jīng)把CZTestLibDemo克隆到桌面了。進(jìn)入該文件夾,創(chuàng)建podspec文件:
pod spec create CZTestLibDemo

2.1配置podspec文件
?找到CZTestLibDemo.podspec文件,選擇 文本編輯 進(jìn)行打開。我們看到全是英文,不要慌張,且聽我一步一步解析。

它的意思其實(shí)就是:
1.你要使用哪個(gè)平臺(tái)?iOS
2.你要使用哪種語言?
3.庫(kù)中是否包含一個(gè)實(shí)例程序?(一般選擇示例程序)
4.你要使用哪個(gè)測(cè)試框架?(沒有就寫None)
5.是否要UI測(cè)試?(我一直都是NO,沒有測(cè)試過)
6.類名前綴是什么?(這個(gè)我創(chuàng)建Swift庫(kù)的時(shí)候沒有這一項(xiàng))
#開頭的都是注釋,我們先把它刪掉,下面是我整理出來的直接填寫好的,完整版。(文章最后有源代碼,可復(fù)制)

特別說明:在source_files這一點(diǎn) s.source_files? = 'SourceFiles'
是因?yàn)橛械耐瑢W(xué)可能會(huì)遇到下面的錯(cuò)誤,怎么都無法解決:?ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.??
s.source_files? 是存放庫(kù)資源文件的。這里指向SourceFiles文件夾,里面隨便放入一個(gè)OC類即可。

特別提醒: 還需創(chuàng)建一個(gè)LICENSE文件,做版權(quán)聲明的。? ? (文章最后有源代碼,可復(fù)制)這樣完整的結(jié)構(gòu)如下圖:

3、本地庫(kù)驗(yàn)證
通過終端,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod lib lint CZTestLibDemo.podspec
如果有警告(WARN),需要根據(jù)提示內(nèi)容解決警告,忽略警告?
pod lib lint CZTestLibDemo.podspec --allow-warnings
執(zhí)行成功會(huì)提示:?CZTestLibDemo passed validation?

4、推送打標(biāo)簽
通過終端,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
git add .
git commit -m "1.0"
git push
git tag -m? 'release version 1.0.0'? 1.0.0
git push origin 1.0.0
5、驗(yàn)證podspec文件
通過終端,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod spec lint CZTestLibDemo.podspec

6、注冊(cè),推送podspec到cocoapods,驗(yàn)證
通過終端,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod trunk register [email] ‘用戶名’ --description='描述,可不填'
example
pod trunk register 123@qq.com 'wnkpzzz' --description='MacBook Pro'
之后會(huì)給你發(fā)送一條郵箱,進(jìn)行確認(rèn),這里的--description='MacBook Pro'可以省略,復(fù)制郵箱的鏈接,在瀏覽器打開如下圖:

查看個(gè)人信息。通過終端,執(zhí)行下面命令:
pod trunk me

推送podspec到Cocoapods??
通過終端,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod trunk push? CZTestLibDemo.podspec
推送成功之后,終端輸出如下

7、搜索驗(yàn)證
pod search CZTestLibDemo
如果發(fā)現(xiàn)搜索不到出現(xiàn)如下提示:
[!] Unable to find a pod with name, author, summary, or description matching `CZTestLibDemo`
解決方法:
//刪除本地索引
rm ~/Library/Caches/CocoaPods/search_index.json
//搜索
?pod search [庫(kù)名]
//更新索引
pod repo update?

GitHub源碼:點(diǎn)擊跳轉(zhuǎn)下載