【一】前言:
每個語言發(fā)展到一個階段,就會出現(xiàn)相應的依賴管理工具半等,或者說是中央代碼倉庫揍愁。
比如Java的Maven呐萨,Python的Pip。而CocoaPods就是一個iOS項目中的第三方開源代碼管理工具莽囤。
以前的問題:
1谬擦、使用一個第三方SDK,需要在工程里面添加一堆配置朽缎,少添加一步配置就會報一大堆錯誤惨远。這個時候為了排查少了哪一個步驟,只能從頭開始重做一遍话肖,太浪費時間和精力北秽。有些配置還不好配置,就更使人煩躁郁悶了最筒。
2贺氓、如果使用的第三方SDK有比較重要的更新,想使用最新的SDK只能到官方下載最新的SDK床蜘,重新導入到自己的項目工程中辙培。
3、如果公司有多個項目邢锯,每一個工程都這樣配置一遍扬蕊,這是多么痛苦的領悟呀。
它的優(yōu)勢:
1丹擎、集成第三方庫厨相,不用我們手動配置。
2鸥鹉、更新方便,一條命令搞定庶骄。
3毁渗、統(tǒng)一管理,簡單高效单刁,開發(fā)者集中精力于功能實現(xiàn)上灸异,不用關注 太多其他的東西。
4羔飞、方便組件化(建立在私有庫基礎上)
預備知識:
Cocoapods安裝和使用 和?GitHub的使用 這里無需多言肺樟≡谓玻基礎知識乘综,如果有疑問的可以自己百度處理。
【二】制作目錄:
先把大致流程要點總結一下:
1紊搪、GitHub創(chuàng)建共有庫
2卡儒、創(chuàng)建podspec文件
2.1田柔、配置podspec文件
3俐巴、本地庫驗證
4、推送打標簽
5硬爆、驗證podspec文件
6欣舵、注冊,推送podspec到cocoapods缀磕,搜索驗證
7缘圈、搜索驗證
【三】具體步驟:
1、GitHub創(chuàng)建共有庫
打開GitHub袜蚕,開始Create a new repository糟把。具體如圖:
創(chuàng)建完成之后,克隆到本地廷没,我這邊全程使用終端命令進行操作糊饱。打開終端,具體操作如下:?
?cd Desktop/
git clone git@github.com:wnkpzzz/CZTestLibDemo.git
2颠黎、創(chuàng)建podspec文件
經過上一個步驟另锋,我們已經把CZTestLibDemo克隆到桌面了。進入該文件夾狭归,創(chuàng)建podspec文件:
pod spec create CZTestLibDemo
2.1配置podspec文件
?找到CZTestLibDemo.podspec文件夭坪,選擇 文本編輯 進行打開。我們看到全是英文过椎,不要慌張室梅,且聽我一步一步解析。
它的意思其實就是:
1.你要使用哪個平臺疚宇?iOS
2.你要使用哪種語言亡鼠?
3.庫中是否包含一個實例程序?(一般選擇示例程序)
4.你要使用哪個測試框架敷待?(沒有就寫None)
5.是否要UI測試间涵?(我一直都是NO,沒有測試過)
6.類名前綴是什么榜揖?(這個我創(chuàng)建Swift庫的時候沒有這一項)
#開頭的都是注釋勾哩,我們先把它刪掉,下面是我整理出來的直接填寫好的举哟,完整版思劳。(文章最后有源代碼,可復制)
特別說明:在source_files這一點 s.source_files? = 'SourceFiles'
是因為有的同學可能會遇到下面的錯誤妨猩,怎么都無法解決:?ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.??
s.source_files? 是存放庫資源文件的潜叛。這里指向SourceFiles文件夾,里面隨便放入一個OC類即可壶硅。
特別提醒: 還需創(chuàng)建一個LICENSE文件钠导,做版權聲明的震嫉。? ? (文章最后有源代碼,可復制)這樣完整的結構如下圖:
3牡属、本地庫驗證
通過終端票堵,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod lib lint CZTestLibDemo.podspec
如果有警告(WARN),需要根據(jù)提示內容解決警告逮栅,忽略警告?
pod lib lint CZTestLibDemo.podspec --allow-warnings
執(zhí)行成功會提示:?CZTestLibDemo passed validation?
4悴势、推送打標簽
通過終端,在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措伐、驗證podspec文件
通過終端特纤,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod spec lint CZTestLibDemo.podspec
6、注冊侥加,推送podspec到cocoapods捧存,驗證
通過終端,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod trunk register [email] ‘用戶名’ --description='描述担败,可不填'
example
pod trunk register 123@qq.com 'wnkpzzz' --description='MacBook Pro'
之后會給你發(fā)送一條郵箱昔穴,進行確認,這里的--description='MacBook Pro'可以省略提前,復制郵箱的鏈接吗货,在瀏覽器打開如下圖:
查看個人信息。通過終端狈网,執(zhí)行下面命令:
pod trunk me
推送podspec到Cocoapods??
通過終端宙搬,在CZTestLibDemo文件夾里面執(zhí)行下面命令:
pod trunk push? CZTestLibDemo.podspec
推送成功之后,終端輸出如下
7拓哺、搜索驗證
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 [庫名]
//更新索引
pod repo update?
GitHub源碼:點擊跳轉下載