正文
創(chuàng)建版本庫(repo)
首先桨吊,創(chuàng)建一個像master一樣的存放版本描述文件的git倉庫株搔,因為是私人git倉庫终娃,我們選擇oschina創(chuàng)建遠程私有倉庫(因為是免費的)或者也可以在GitHub上創(chuàng)建($7/month)卷雕。
下面以oschina為例
創(chuàng)建版本描述倉庫
回到終端,將這個遠程的私有版本倉庫添加到本地骂铁,repo就是 repository 儲存庫的縮寫吹零。
$ pod repo add MyRepo https://git.oschina.net/baiyingqiu/MyRepo.git
查看在 Finder 目錄~/.cocoapods/repos, 可以發(fā)現(xiàn)增加了一個 MyRepo 的儲存庫
創(chuàng)建代碼庫
回到oschina創(chuàng)建私人代碼庫
創(chuàng)建時添加MIT License和README
將倉庫克隆到本地拉庵,添加你的代碼文件灿椅、倉庫名.podspec描述文件,還有.swift-version.
如下
.swift-version文件用來知道swift版本钞支,用命令行創(chuàng)建
$echo"3.0"> .swift-version
.podspec文件是你這個代碼庫的pod描述文件,可以通過pod指令創(chuàng)建空白模板:
$ pod spec create KTVRoomThirdPart
或者強烈建議直接拷貝下面的模板進行修改
Pod::Spec.newdo|s|s.name? ? ? ? ="KTVRoomThirdPart"# 項目名稱s.version? ? ? ="0.0.1"# 版本號 與 你倉庫的 標(biāo)簽號 對應(yīng)s.license? ? ? ="MIT"# 開源證書s.summary? ? ? ="私人pod代碼"# 項目簡介s.homepage? ? ="https://git.oschina.net/baiyingqiu/KTVRoomThirdPart"# 倉庫的主頁s.source? ? ? = {:git=>"https://git.oschina.net/baiyingqiu/KTVRoomThirdPart.git",:tag=>"#{s.version}"}#你的倉庫地址茫蛹,不能用SSH地址s.source_files ="KTVRoomThirdPart/*.{h,m}"# 你代碼的位置, BYPhoneNumTF/*.{h,m} 表示 BYPhoneNumTF 文件夾下所有的.h和.m文件s.requires_arc =true# 是否啟用ARCs.platform? ? =:ios,"7.0"#平臺及支持的最低版本# s.frameworks? = "UIKit", "Foundation" #支持的框架# s.dependency? = "AFNetworking" # 依賴庫# Users.author? ? ? ? ? ? = {"BY"=>"qiubaiyingios@163.com"}# 作者信息s.social_media_url? ="http://qiubaiying.github.io"# 個人主頁end
這里我要說一下一個坑烁挟,用oschina創(chuàng)建私人倉庫時, 在驗證時可能會找不到MIT LICENSE證書,將其中的
s.license? ? ? ="MIT"修改為婴洼,指定文件s.license? ? ? = { :type=>"MIT", :file=>"LICENSE"}
然后開始驗證我們的倉庫配置是否正確,并按照要求進行修改
$ pod lib lint
一般出現(xiàn)錯誤警告撼嗓,需要添加--private或者--allow-warnings柬采,就可以通過驗證
$ pod lib lint --private --allow-warnings
驗證成功后出現(xiàn)
->KTVRoomThirdPart(0.0.1)
KTVRoomThirdPartpassedvalidation.
將描述文件推送到版本庫
將項目打上標(biāo)簽推到遠程倉庫,標(biāo)簽號 和 版本號對應(yīng) 都是0.0.1
最后將我們的代碼倉庫的描述信息且警,push 到我們的版本倉庫中
$ pod repo push KTVRoomRepo KTVRoomThirdPart.podspec --allow-warnings
這時會對遠程倉庫進行驗證粉捻,成功的話就會在~/.cocoapods/repos/KTVRoomRepo中發(fā)現(xiàn)新增的倉庫描述信息了
若是出現(xiàn)錯誤信息
[!] The repo`MyRepo`at`../.cocoapods/repos/KTVRoomRepo`isnotclean
更新下我們的版本庫,
$ pod repo update MyRepo
再繼續(xù)上傳即可斑芜。
pod repo push MyRepo KTVRoomThirdPart.podspec的過程就是
驗證KTVRoomThirdPart.podspec文件
拉取遠程版本庫MyRepo
添加KTVRoomThirdPart.podspec到版本庫中
push 到遠程
添加完成后我們就可以在pod中搜索
$ pod search KTVRoomThirdPart
-> KTVRoomThirdPart (0.0.1)? Some categoryofthe framework and UIKit? pod'KTVRoomThirdPart','~> 0.0.1'- Homepage: https://git.oschina.net/baiyingqiu/KTVRoomThirdPart- Source:? https://git.oschina.net/baiyingqiu/KTVRoomThirdPart.git- Versions:0.0.1[MyRepo repo](END)
私人pod庫的使用
使用私人pod庫的需要在Podflie中添加這句話杀迹,指明你的版本庫地址。
source‘https://git.oschina.net/baiyingqiu/MyRepo.git’
注意是版本庫的地址押搪,而不是代碼庫的地址树酪,很多教程都把我搞暈了~
若有還使用了公有的pod庫,需要把公有庫地址也帶上
source'https://github.com/CocoaPods/Specs.git'
最后的Podflie文件變成這個樣子
source‘https://github.com/CocoaPods/Specs.git’source‘https://git.oschina.net/baiyingqiu/MyRepo.git’platform :ios,'8.0'target ‘MyPodTest’douse_frameworks!pod “BYPhoneNumTF”#公有庫pod ‘KTVRoomThirdPart’#我們的私有庫pod ‘BYAdditions’#這是我又添加到版本庫中的另一個代碼庫end
測試:
$ pod install
加載完成可以看到代碼已經(jīng)整合到我們的項目中了
perfect大州!
回到Fender中~/.cocoapods/repos,會發(fā)現(xiàn) repos 中增加了一個pod版本庫续语。
執(zhí)行pod install命令時
會拉取遠程Podflie中source標(biāo)記 版本庫 到本地的 repos 文件夾中
在 版本庫 中搜索我們pod ‘KTVRoomThirdPart’的KTVRoomThirdPart.podspec文件。
根據(jù)KTVRoomThirdPart.podspec文件中描述的源碼地址下載并整合到項目中