在碼云(我的個人主頁)上創(chuàng)建兩個遠(yuǎn)程倉庫,其中YYSpecs 用來存放本地的spec,YYToolProject是用來存放私有庫代碼的翠勉。
1 創(chuàng)建本地索引
首先 進(jìn)入~/.cocoapods/repos目錄 查看有一個master的目錄誉券,master就是cocoapod官網(wǎng)的索引源击吱,現(xiàn)在要做的就是創(chuàng)建自己私有的Spec Repo.
pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
pod repo add YYSpecs https://gitee.com/yuyiios/YYSpecs.git
然后可以看見master有個同級目錄YYSpecs虑椎。私有Spec Repo就創(chuàng)建完成了榆鼠。
2.創(chuàng)建本地lib
進(jìn)入桌面目錄纲爸,創(chuàng)建一個名為YYToolSet的pod
pod lib create YYToolSet
會有以下提示,按照問題回答就可以
If this is your first time we recommend running through with the guide:
- https://guides.cocoapods.org/making/using-pod-lib-create.html
( hold cmd and double click links to open in a browser. )
What platform do you want to use?? [ iOS / macOS ]
>
ios
What language do you want to use?? [ Swift / ObjC ]
> ObjC
Would you like to include a demo application with your library? [ Yes / No ]
> No
Which testing frameworks will you use? [ Specta / Kiwi / None ]
> None
Would you like to do view based testing? [ Yes / No ]
> No
What is your class prefix?
> YY
在Finder中妆够,將/YYToolSet/Classes目錄下的ReplaceMe.m刪除 替換成自己的文件识啦,如圖。打開工程神妹,查看YYToolSet.podspec文件
- s.version 是pod的版本信息 這個后面打tag的時候用的到
- s.summary 是簡短的描述
- s.source 是項目遠(yuǎn)程倉庫的地址颓哮,這里不要用SSH,用HTTPS鸵荠。
- s.homepage 是項目主頁地址 就是HTTPS地址后面去掉.git 就可以
- s.source_files 是項目的文件 就是剛才替換ReplaceMe.m的那些文件
- s.resource_bundles 是資源文件
- s.frameworks 是用到了系統(tǒng)的哪些庫 例如UIKit冕茅、Foundation
- s.dependency 是用到哪些第三方庫 比如AFNetworking 有多個就寫多個s.dependency
- s.public_header_files 項目的公共頭文件,舉個例子蛹找,當(dāng)引入Masonry嵌赠、YTKNetwork的時候 可以創(chuàng)建一個header文件,然后將#import "Masonry.h" #import "YTKNetwork.h”寫入進(jìn)去
3.驗證本地lib
修改完成后熄赡,切換到外面的YYToolSet目錄姜挺,驗證podspec文件。
pod lib lint
pod lib lint --verbose
pod lib lint --allow-warnings
pod lib lint --sources=https://gitee.com/yuyiios/YYSpecs.git
pod lib lint --use-libraries
- --verbose 假如有error,查看報錯信息
- --allow-warnings 假如有warning彼硫,可以通過來忽略錯誤信息通過驗證
- --sources 假如這個私有庫還依賴其他的私有庫炊豪,一定要指定私有庫的索引源(就是我上文說的YYSpecs的git地址)--sources=https://github.com/artsy/Specs,master
- --use-libraries 如果用了第三方的framework或者靜態(tài)庫,要加上拧篮。
4.驗證本地和遠(yuǎn)端的pod
本地校驗成功后词渤,推送至遠(yuǎn)端,就是YYToolProject的git地址串绩。進(jìn)入外面的YYToolSet目錄缺虐。執(zhí)行命令。
git remote add origin [GitHub HTTPS clone URL]
git remote add origin https://gitee.com/yuyiios/YYToolProject.git
git pull origin master
有沖突先解決沖突
git add .
git commit -m 'fix'
git push origin master
然后給pod打上標(biāo)簽礁凡,并且推送至遠(yuǎn)端高氮,注意這里的tag要和podspec文件里面的s.version對應(yīng)起來慧妄。
git tag -m '0.1.0標(biāo)簽' -a 0.1.0
git push --tags
git tag //查看標(biāo)簽
打完標(biāo)簽后,執(zhí)行
pod spec lint
pod lib lint和pod spec lint的區(qū)別是前者只會檢驗本地的pod,后者是本地和遠(yuǎn)端都會檢驗剪芍,所以之前用到的--allow-warning --sources --use-libraries 等命令的這里都要帶上塞淹。
5 推送至索引源倉庫
遠(yuǎn)端和本地都校驗通過后就要將YYToolSet.podspec 推送至YYSpecs倉庫中 成功后去~/.cocoapods/repos/YYSpecs 有個YYToolSet目錄 有個0.1.0的版本。
pod repo push [Repo名] [podspec 文件名字]
pod repo push YYSpecs YYToolSet.podspec
最后驗證一下
pod search YYToolSet
-> YYToolSet (0.1.0)
工具集 YYToolSet.
pod 'YYToolSet', '~> 0.1.0'
- Homepage: https://gitee.com/yuyiios/YYToolProject
- Source: https://gitee.com/yuyiios/YYToolProject.git
- Versions: 0.1.0 [YYSpecs repo]
(END)
新建一個空項目罪裹,導(dǎo)入私有庫驗證一下饱普,這里一定要帶上source 就是YYToolSet所在索引源的遠(yuǎn)端地址。
pod init
vim Podfile
source 'https://gitee.com/yuyiios/YYToolProject.git'
# platform :ios, '9.0'
source 'https://gitee.com/yuyiios/YYSpecs.git'
# platform :ios, '9.0'
target 'None' do
pod 'YYToolSet', '~> 0.1.0'
# use_frameworks!
# Pods for None
end