iOS-Cocoapods制作自己的共有庫(kù)、

【一】前言:

每個(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)下載


最后編輯于
?著作權(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)容