一內(nèi)容概述
cocoapod是用來(lái)ios工程引入第三方庫(kù)的工具,比如引入網(wǎng)絡(luò)庫(kù)AFNetworking,方法為 pod 'AFNetworking'。本文主要介紹如何把自己的寫的類庫(kù)上傳到cocoapod,使之可以如同AFNetworking一樣使用。
二詳細(xì)步驟
1.搭建框架
打開終端,創(chuàng)建一個(gè)空文件夾作為創(chuàng)建自己cocoapod的內(nèi)容根目錄:mkdir ownpod
進(jìn)入文件夾ownpod,執(zhí)行命令:pod lib create jkCircleImage,jkCircleImage為類庫(kù)的名稱,需要自己定義,該名稱將作為引入到工程的名稱。
接下來(lái)會(huì)有一些列問(wèn)題,作答即可:

總目錄結(jié)構(gòu)如下:

回答完成之后會(huì)在目錄Example下自動(dòng)執(zhí)行pod install命令,該目錄為測(cè)試項(xiàng)目目錄
把自己的類庫(kù)保存到文件夾Classes下面,清空該文件夾下的源文件
此時(shí)在回到Example文件夾中執(zhí)行 pod update就可以看到自己的類庫(kù)進(jìn)入了pod下面
2.創(chuàng)建git倉(cāng)庫(kù)
創(chuàng)建自己的git倉(cāng)庫(kù)用來(lái)管理根目錄下的全部文件:
https://github.com/songjk/jkCircleImage.git
3.通過(guò)框架進(jìn)行設(shè)置
修改配置文件:jkCircleImage.podspec

驗(yàn)證配置是否正確:終端進(jìn)入根目錄jkCircleImage,執(zhí)行命令:pod lib lint jkCircleImage.podspec ,(如果有警告請(qǐng)嘗試:pod lib lint jkCircleImage.podspec --allow-warnings)提示jkCircleImage passed validation.表示正確。
4.把框架文件推送到git倉(cāng)庫(kù)
終端進(jìn)入根目錄jkCircleImage,執(zhí)行命令(tag和版本號(hào)要保持一致):
git init
git add .
git commit -a -m "初始化"
git tag "0.1.0"
git remote add origin https://github.com/songjk/jkCircleImage.git
git push origin master --tags
(如果失敗,請(qǐng)強(qiáng)制push:git push origin master --tags -f)
5.注冊(cè)****CocoaPods Trunk
在CocoaPods Trunk中注冊(cè),用郵箱注冊(cè),注冊(cè)成功會(huì)有郵件返回。注冊(cè)方法:在終端執(zhí)行:pod trunk register 447299884@qq.com "Songjk" --verbose
等注冊(cè)的郵箱收到CocoaPods的確認(rèn)郵件。點(diǎn)擊郵件中的驗(yàn)證鏈接,提示Ace, You're set up. 然后才可以進(jìn)行下一步(如果是升級(jí)也需要執(zhí)行這一步?。?。
6.發(fā)布自己的類庫(kù)
終端進(jìn)入根目錄jkCircleImage,執(zhí)行命令:pod trunk push jkCircleImage.podspec --verbose
(如果有警告請(qǐng)嘗試:pod trunk push jkCircleImage.podspec --verbose --allow-warnings)
發(fā)布完成之后在瀏覽器輸入地址可以檢驗(yàn)是否成功:<u>https://cocoapods.org/pods/jkCircleImage</u>
以后就可以在任何工程直接使用自己發(fā)布的類庫(kù)了,使用方法:pod 'jkCircleImage'
7.疑問(wèn)解答
如果發(fā)現(xiàn)pos search 或者 pod 失敗,請(qǐng)更新pod,然后依次執(zhí)行如下命令:
pod setup
rm ~/Library/Caches/CocoaPods/search_index.json
備注:
官方教程網(wǎng)站:<u>https://guides.cocoapods.org/making/making-a-cocoapod.html</u>