前言
文本將從零開始介紹如何使用cocoaPods發(fā)布自己的開源庫(kù)
第一步:注冊(cè)Trunk
-
查看當(dāng)前
pod版本pod --version -
如果未安裝
pod,需下載安裝sudo gen install cocoapods pod setup -
查看自己是否注冊(cè)過(guò)
Trunkpod trunk me如果輸出您的郵箱信息等,說(shuō)明您已經(jīng)注冊(cè)過(guò)了,無(wú)需重新注冊(cè)
-
注冊(cè)
pod trunk register 您的郵箱地址@163.com "用戶名" --verbose您的郵箱地址@163.com- 這里輸入您的郵箱地址
用戶名- 這里輸入您的用戶名注冊(cè)完成后,會(huì)給您的郵箱發(fā)送一封郵件,您需要進(jìn)入郵箱,打開郵件中的鏈接,完成驗(yàn)證即可
-
驗(yàn)證是否注冊(cè)成功
pod trunk me觀察是否會(huì)輸出用戶信息,注冊(cè)如果成功會(huì)打印出您的郵箱和用戶名
第二步:創(chuàng)建項(xiàng)目
-
到
github上創(chuàng)建一個(gè)新項(xiàng)目- 進(jìn)入您的git賬號(hào),點(diǎn)擊
+, 選擇New Repository, 新建項(xiàng)目 - 輸入項(xiàng)目名稱(注意:這里的項(xiàng)目名是你要發(fā)布庫(kù)的名字如
ChXAnimation而不是你的工程名如ChXAnimationDemo)、填寫描述,選擇初始化一個(gè)README文件,選擇MIT的授權(quán)文件
- 進(jìn)入您的git賬號(hào),點(diǎn)擊
Clone 到本地(使用
git命令)
打開終端,cd 到您想存放項(xiàng)目的地方,如文檔文件夾
cd ~/文檔
在 github 上復(fù)制剛創(chuàng)建項(xiàng)目的鏈接地址,例如: https://github.com/sunrisechen007/ChXCategorys.git
clone
git clone https://github.com/sunrisechen007/ChXCategorys.git
- 添加要發(fā)布的庫(kù)內(nèi)容,如需要發(fā)布
ChXCategory這個(gè)文件夾里的文件,直接把該文件夾拖入當(dāng)前項(xiàng)目根目錄中
第三步:配置信息
-
創(chuàng)建
.podspec文件,用以配置pod發(fā)布庫(kù)的信息cd 到剛 cloen 的項(xiàng)目中 ,輸入命令
pod spec create ChXCategorys上面
ChXCategorys是您要發(fā)布框架的名字,和git上項(xiàng)目的名稱(https://github.com/sunrisechen007/ChXCategorys.git)保持一致注意這里的
podspec文件名ChXCategorys和您要發(fā)布庫(kù)存放的文件夾ChXCategory是可以一樣的
-
編輯
.podspec文件使用文本編輯工具打開剛建的
podspec文件,刪除里面的默認(rèn)代碼,按照下面格式輸入代碼Pod::Spec.new do |s| s.name = "ChXCategorys" s.version = "0.0.1" s.ios.deployment_target = '8.0' s.summary = “簡(jiǎn)介" s.homepage = "https://github.com/zhangyqyx/ChXCategorys" s.social_media_url = 'https://www.baidu.com' s.license = "MIT" s.author = { "xuchen" => "xxx@163.com" } s.source = { :git => 'https://github.com/zhangyqyx/ChXCategorys.git', :tag => s.version} s.requires_arc = true s.source_files = ‘ChXCategory/*' #依賴庫(kù),不能依賴未發(fā)布的庫(kù) #s.dependency = 'AFNetworking' , 'SDWebImage' end下面是這些參數(shù)的意思,也很好理解,根據(jù)實(shí)際相應(yīng)修改即可
s.name-> 項(xiàng)目名 ,即使你要發(fā)布庫(kù)的名字
version-> tag 版本號(hào)(每次發(fā)布都需要修改)
...
s.source_files -> 這個(gè)是指定您要發(fā)布庫(kù)的文件夾位置的,我這里是把文件都放在了ChXCategory里了,后面的/*表示該文件夾里的所有文件,當(dāng)然您也可以寫成*.{h,m}表示里面的所有 .h 和 .m 文件如果
ChXCategory里又嵌套了一個(gè)文件夾,您可以使用代碼‘ChXCategory/*','ChXCategory/*/*'
目錄圖參考如下:
mulu.png
第四步:發(fā)布
-
上傳到
github(使用Git命令行)將修改后的本地項(xiàng)目文件,提交到線上
1. git add . 2. git commit -m "提交說(shuō)明文字" 3. git push origin masteradd是將代碼從工作區(qū)提交到暫存區(qū),.表示提交所有文件
commit是將代碼從暫存區(qū)提交到版本庫(kù),-m后面需要填寫更新日志
push是推送到遠(yuǎn)程主分支,您也可以推送到其它相應(yīng)分支
-
打
tag
每次發(fā)布都得重新設(shè)置tag1. git tag 1.0.0 2. git push --tags 3. git push origin master可以使用
git tag查看當(dāng)前存在的tag
每次打完tag之后,記得要推送(push)到遠(yuǎn)程分支
-
驗(yàn)證
.podspec文件內(nèi)容是否正確pod spec lint ChXCategorys.podspec --verboseChXCategorys.podspec這就是您項(xiàng)目中新建的 podspec 文件,需替換成您的
注意:
如果驗(yàn)證出現(xiàn)錯(cuò)誤,修改完成后,需要把修改完成后的項(xiàng)目重新提交到 git 上,打 tag ,每次驗(yàn)證都需要修改下版本號(hào) ;tag 要加 1 ,podspec文件里的 s.version 也加 1
-
可以發(fā)布啦
當(dāng)驗(yàn)證完成無(wú)報(bào)錯(cuò)時(shí),下面我們就可以發(fā)布我們的庫(kù)了
pod trunk push ChXCategorys.podspec耐心等待一會(huì)兒,結(jié)果出現(xiàn)有 Congrats 時(shí),說(shuō)明您的庫(kù)已經(jīng)發(fā)布成功啦。
-
驗(yàn)證
pod search ChXCategorys輸入以上命令,如果可以搜索到的話,那么恭喜.
如果搜索不到,出現(xiàn)如下錯(cuò)誤提示[!] Unable to find a pod with name, author, summary, or description matching `xxx`而你確認(rèn)已經(jīng)發(fā)布成功的話,那么你可以
- 前往 資源庫(kù) 去刪除 cocoapod 緩存中的 search_index.json 文件,重新搜索一次再試試,
有點(diǎn)慢,需要等待一會(huì)兒 - json文件路徑: /Users/xx/Library/Caches/CocoaPods (
xx是你的電腦賬戶名)
- 前往 資源庫(kù) 去刪除 cocoapod 緩存中的 search_index.json 文件,重新搜索一次再試試,
使用
進(jìn)入到項(xiàng)目中,在 podfile 文件中添加 pod ChXCategorys (ChXCategorys您的庫(kù)名),然后執(zhí)行 pod install 就可以下載到您的庫(kù)了
