記錄一下自己第一次創(chuàng)建CocoaPods庫(kù)的經(jīng)歷祖灰,以及遇到的一些問(wèn)題尿招,廢話不多诀豁,干貨滿滿
1. 創(chuàng)建工程
打開(kāi)終端窄刘,cd到你要?jiǎng)?chuàng)建文件的位置,如:Documents/work/pod
cd Documents/work/pod
pod lib create SYPodTest
pod創(chuàng)建過(guò)程.png
第一次創(chuàng)建會(huì)問(wèn)你幾個(gè)問(wèn)題
- 第一個(gè)是問(wèn)你使用什么平臺(tái)開(kāi)發(fā) [iOS還是macOS]舷胜,根據(jù)需要選擇即可娩践,這里選擇iOS。
- 第二個(gè)是問(wèn)你使用什么開(kāi)發(fā)語(yǔ)言 [Swift還是Objc]烹骨,這里選擇Objc翻伺。
- 第三個(gè)問(wèn)是否創(chuàng)建一個(gè)demo應(yīng)用包含在工程里,根據(jù)需要沮焕,如果需要demo示例吨岭,選擇Yes,否則No峦树。
- 第四個(gè)問(wèn)是否需要測(cè)試Framework辣辫,這里選擇None。
- 第五個(gè)問(wèn)是否需要做界面調(diào)試魁巩,這里選擇No络它。
- 最后一個(gè)問(wèn)工程文件的前綴,根據(jù)需要歪赢,我這里使用SY前綴化戳。
image.png
2. 編輯配置文件
- podspec文件埋凯,即Pod Specification(Pod描述文件)点楼,描述指定版本的pod庫(kù)信息,包括:pod庫(kù)源碼地址白对、文件列表掠廓、配置信息、描述信息等甩恼。具體可參考官方文檔
- README項(xiàng)目描述文件蟀瞧,這個(gè)文件可以使用Markdown語(yǔ)法沉颂,主要展示在GitHub工程上的首頁(yè)。README文件對(duì)于使用這個(gè)pod庫(kù)的人來(lái)說(shuō)悦污,有和沒(méi)有這個(gè)文件铸屉,區(qū)別是很明顯的
-
LICENSE要想是Spec倉(cāng)庫(kù)接收,就必須包含一個(gè)license切端。
pod lib create
自動(dòng)創(chuàng)建使用的是 MIT license彻坛。可以根據(jù)需要可以使用不同的License踏枣。
這里主要修改podspec文件
- s.name 項(xiàng)目名稱昌屉,這里是SYPodTest
-
s.version版本號(hào),
0.0.1
茵瀑,1.0.0
等 - s.summary對(duì)項(xiàng)目簡(jiǎn)單扼要的描述间驮,比如功能,作用等
-
s.description對(duì)項(xiàng)目詳細(xì)全面的介紹马昨,寫在
<<-DESC
和DESC
中間蜻牢,不用注意縮進(jìn) - s.homepage項(xiàng)目主頁(yè)地址
- s.license License類型和名稱
- s.author作者及聯(lián)系郵箱
- s.source源碼地址
- s.ios.deployment_target目標(biāo)版本號(hào)
- s.source_files代碼路徑
- s.resource_bundles資源文件如圖片等的路徑,如果有將注釋去掉
- s.public_header_files公共頭文件路徑
- s.frameworks依賴的Framework
-
s.dependency依賴的第三方庫(kù)偏陪,如
AFNetworking
等,如果有第三方依賴煮嫌,將注釋去掉
image.png
3. 創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)
image.png
創(chuàng)建好后將本地代碼提交到遠(yuǎn)程倉(cāng)庫(kù)
git add .
git commit -m "Initial Commit"
添加遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin https://github.com/xxx/SYPodTest.git
git push -u origin master
到這里報(bào)錯(cuò)了image.png
按提示嘗試
git pull origin master
還是有問(wèn)題
image.png
報(bào)錯(cuò)原因是首次上傳代碼笛谦,本地分支和遠(yuǎn)程分支不一致,遠(yuǎn)程創(chuàng)建倉(cāng)庫(kù)的時(shí)候勾選了gitignore甚至可能還有License昌阿,導(dǎo)致不能合并饥脑,百度之,解決辦法是懦冰,參考這里
git pull --rebase origin master
繼續(xù)提交代碼
git push -u origin master
pod驗(yàn)證
pod lib lint SYPodTest.podspec
到這里又報(bào)錯(cuò)了
image.png
Google之灶轰,還是StackOverflow好用,還有這里刷钢。這里插一句吐槽笋颤,論精準(zhǔn)我只服Google,百度差評(píng)内地,搜半天伴澄,翻了好幾個(gè)才找到答案的
解決辦法是:
Xcode > Preferences > Locations
選擇Command Line Toolsimage.png
繼續(xù)剛才的操作,終于成功了
pod lib lint SYPodTest.podspec
image.png
4. 提交Pod
1. 打Tag
git tag 0.1.0
提交到遠(yuǎn)程倉(cāng)庫(kù)
git push origin --tag
2. 驗(yàn)證
pod spec lint SYPodTest.podspec
-> SYPodTest (0.1.0)
Analyzed 1 podspec.
SYPodTest.podspec passed validation.
3. 提交pod到Specs倉(cāng)庫(kù)
pod trunk push SYPodTest.podspec
這里又報(bào)錯(cuò)了
image.png
意思是你需要注冊(cè)一個(gè)session阱缓,參考這里
pod trunk register 電子郵箱 '您的姓名' --description='description'
繼續(xù)剛才報(bào)錯(cuò)的步驟非凌,成功了
pod trunk push SYPodTest.podspec
image.png
5. pod search 檢驗(yàn)是否可用
pod search SYPodTest
出現(xiàn)下面這個(gè)問(wèn)題:
[!] Unable to find a pod with name, author, summary, or description matching `SYPodTest`
這主要是因?yàn)樵诒镜厮饕锩鏇](méi)有, 解決辦法
- pod setup (不行,實(shí)用方法二)
- pod repo update(不行,試用方法三)
- 前往這個(gè)路徑下
~/Library/Caches/CocoaPods
刪除search_index.json文件 , 或者使用終端命令刪除:
rm ~/Library/Caches/CocoaPods/search_index.json
完成后,重新搜索
到這里荆针,自己的CocoaPods倉(cāng)庫(kù)終于創(chuàng)建完成敞嗡!