一.創(chuàng)建遠(yuǎn)程私有庫(kù)
創(chuàng)建一個(gè)私有的podspec包括如下那么幾個(gè)步驟:
1.創(chuàng)建并設(shè)置一個(gè)私有的Spec Repo。
2.創(chuàng)建Pod所需要的項(xiàng)目工程文件。
3.向遠(yuǎn)程倉(cāng)庫(kù)提交工程項(xiàng)目。
4.向私有的Spec Repo中提交podspec躏救。
5.在個(gè)人項(xiàng)目中引入私有庫(kù)。
6.更新維護(hù)podspec。
在整個(gè)過(guò)程中我們一共需要兩個(gè)Git倉(cāng)庫(kù)潘飘。一個(gè)是用來(lái)放Pods索引的肮之,也就是第一步中用到的,而且只有在第一次創(chuàng)建遠(yuǎn)程庫(kù)時(shí)才需要卜录;另一個(gè)是用來(lái)存放工程代碼的遠(yuǎn)程倉(cāng)庫(kù)戈擒,不一定是Git倉(cāng)庫(kù),其它的遠(yuǎn)程倉(cāng)庫(kù)也可以暴凑,本文以Git來(lái)介紹峦甩。
1.創(chuàng)建并設(shè)置一個(gè)私有的Spec Repo
Spec Repo是所有Pods的一個(gè)索引,相當(dāng)于一個(gè)容器现喳,所有的Pods都在這個(gè)索引里面凯傲。如 ~/CocoaPods/Specs是所有公共的Pods的索引,稍后我們創(chuàng)建TestSpecs就是我們所有Pods私有庫(kù)的索引嗦篱。
接下來(lái)我們創(chuàng)建Spec Repo冰单,在終端執(zhí)行以下命令:
pod repo add TestSpecs http://XXX/TestSpecs.git
http://XXX/TestSpecs.git 是我們創(chuàng)建好的存放TestSpecs索引的倉(cāng)庫(kù)。
成功之后在 ~/.cocoapods/repos目錄下會(huì)多出一個(gè)TestSpecs文件灸促。第一步完成诫欠。
PS:多人開(kāi)發(fā)時(shí),其他成員也需要執(zhí)行這個(gè)命令浴栽,且其他成員需要有這個(gè)Git倉(cāng)庫(kù)的權(quán)限荒叼。
2.創(chuàng)建Pod所需要的項(xiàng)目工程文件
在終端進(jìn)入需要?jiǎng)?chuàng)建項(xiàng)目的目錄,然后執(zhí)行:
pod lib create TestKit
執(zhí)行完之后會(huì)有幾個(gè)問(wèn)題典鸡,按需要回答即可被廓。回答完之后會(huì)自動(dòng)執(zhí)行pod install命令創(chuàng)建項(xiàng)目并生成依賴(lài)萝玷。
現(xiàn)在進(jìn)入到項(xiàng)目目錄下的Example目錄下嫁乘,打開(kāi)workspace文件,刪掉Replaceme文件球碉,開(kāi)始編輯TestKit.podspec文件蜓斧,參考以下格式:
Pod::Spec.new do |s|
s.name = 'TestKit'
s.version = '1.0.0'
s.summary = '遠(yuǎn)程庫(kù)測(cè)試'
s.description = <<-DESC
‘遠(yuǎn)程庫(kù)測(cè)試.’
DESC
s.homepage = 'http://XXX'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'xujiebing' => 'xujiebing1992@gmail.com' }
s.source = { :git => 'http://XXX/TestKit.git', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'
s.source_files = 'TestKit/*'
end
添加項(xiàng)目需要的代碼,本地先測(cè)試編譯睁冬,確保編譯通過(guò)挎春。
3.向遠(yuǎn)程倉(cāng)庫(kù)提交工程項(xiàng)目
在終端中進(jìn)入BWTKit目錄
將本地工程文件提交到遠(yuǎn)程倉(cāng)庫(kù)。執(zhí)行以下命令:
git add .
git commit -m '初始化項(xiàng)目'
git remote add origin http://XXX/TestKit.git # 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git push origin master # 提交到遠(yuǎn)程倉(cāng)庫(kù)
PS:如果push失敗可以嘗試命令:git push origin master -f # 覆蓋遠(yuǎn)程倉(cāng)庫(kù)
podspec文件中需要獲取Git的tag痴突,所以我們這里需要打上tag搂蜓。執(zhí)行以下命令:
git tag -m '第一個(gè)tag' 1.0.0
git push --tags # 推送tag到遠(yuǎn)程倉(cāng)庫(kù)
4.向私有的Spec Repo中提交podspec
在終端中進(jìn)入TestKit目錄
先本地驗(yàn)證podspec文件,執(zhí)行命令:
pod lib lint
當(dāng)看到以下輸出表示本地驗(yàn)證通過(guò)
-> TestKit (1.0.0)
TestKit passed validation.
接下來(lái)進(jìn)行遠(yuǎn)程驗(yàn)證辽装,執(zhí)行命令:
pod spec lint
當(dāng)看到以下輸出表示遠(yuǎn)程驗(yàn)證通過(guò)
-> TestKit (1.0.0)
TestKit passed validation.
驗(yàn)證完之后向遠(yuǎn)程TestSpecs提交podspec帮碰,執(zhí)行命令:
pod repo push TestSpecs TestKit.podspec
完成之后這個(gè)TestKit庫(kù)就添加到我們的私有TestSpecs中了,可以進(jìn)入到~/.cocoapods/repos/TestSpecs目錄下查看拾积,也可以去遠(yuǎn)程倉(cāng)庫(kù)查看殉挽。
5.在個(gè)人項(xiàng)目中引入私有庫(kù)
在需要引入私有庫(kù)的項(xiàng)目的podfile文件中引入:
source 'https://github.com/CocoaPods/Specs.git'
source 'http://XXX/TestSpecs.git'
pod 'TestKit', '~> 1.0.0'
PS: source 'https://github.com/CocoaPods/Specs.git' 必須要加丰涉,否則項(xiàng)目中引入的共有的Pods庫(kù)將無(wú)法安裝
6.更新維護(hù)podspec
我們已經(jīng)制作好TestKit 1.0.0版本,現(xiàn)在業(yè)務(wù)有變更斯碌,需要對(duì)TestKit進(jìn)行升級(jí)一死。
這是只需要將2,3傻唾,4投慈,5步中的version和tag設(shè)置成新的值,然后重復(fù)2冠骄,3伪煤,4,5步即可凛辣。
二.遠(yuǎn)程私有庫(kù)中引入私有庫(kù)
以TestBizKit引入TestKit為例
1.創(chuàng)建Pod所需要的項(xiàng)目工程文件
在終端進(jìn)入需要?jiǎng)?chuàng)建項(xiàng)目的目錄抱既,然后執(zhí)行:
pod lib create TestBizKit
執(zhí)行完之后會(huì)有幾個(gè)問(wèn)題,按需要回答即可扁誓》辣茫回答完之后會(huì)自動(dòng)執(zhí)行pod install命令創(chuàng)建項(xiàng)目并生成依賴(lài)。
現(xiàn)在進(jìn)入到項(xiàng)目目錄下的Example目錄下蝗敢,打開(kāi)workspace文件捷泞,刪掉Replaceme文件,開(kāi)始編輯TestBizKit.podspec文件寿谴,參考以下格式:
Pod::Spec.new do |s|
s.name = 'TestBizKit'
s.version = '1.0.0'
s.summary = '測(cè)試'
s.description = <<-DESC
‘測(cè)試.’
DESC
s.homepage = 'http://XXX'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'xujiebing' => 'xujiebing1992@gmail.com' }
s.source = { :git => 'http://XXX/TestBizKit.git', :tag => s.version.to_s }
s.ios.deployment_target = '8.0'
s.source_files = 'TestBizKit/*'
s.dependency 'TestKit' # 注意:這一步比較關(guān)鍵
end
在Podfile中加入:# 注意:這一步有所區(qū)別
source 'https://github.com/CocoaPods/Specs.git'
source 'http://XXX/TestSpecs.git'
進(jìn)入Example目錄下執(zhí)行 pod install
添加項(xiàng)目需要的代碼肚邢,本地先測(cè)試編譯,確保編譯通過(guò)拭卿。
2.向遠(yuǎn)程倉(cāng)庫(kù)提交工程項(xiàng)目
在終端中進(jìn)入BWTBaseBiz目錄
將本地工程文件提交到遠(yuǎn)程倉(cāng)庫(kù)。執(zhí)行以下命令:
git add .
git commit -m '初始化項(xiàng)目'
git remote add origin http://XXX/TestBizKit.git # 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git push origin master # 提交到遠(yuǎn)程倉(cāng)庫(kù)
PS:如果push失敗可以嘗試命令:git push origin master -f # 覆蓋遠(yuǎn)程倉(cāng)庫(kù)
podspec文件中需要獲取Git的tag贱纠,所以我們這里需要打上tag峻厚。執(zhí)行以下命令:
git tag -m '第一個(gè)tag' 1.0.0
git push --tags # 推送tag到遠(yuǎn)程倉(cāng)庫(kù)
3.向私有的Spec Repo中提交podspec
在終端中進(jìn)入TestBizKit目錄
先本地驗(yàn)證podspec文件,執(zhí)行命令:# 注意:這一步有區(qū)別
pod lib lint --sources=http://XXX/TestSpecs.git,https://github.com/CocoaPods/Specs.git
當(dāng)看到以下輸出表示本地驗(yàn)證通過(guò)
-> TestBizKit (1.0.0)
TestBizKit passed validation.
接下來(lái)進(jìn)行遠(yuǎn)程驗(yàn)證谆焊,執(zhí)行命令:# 注意:這一步有區(qū)別
pod spec lint --sources=http://git.bwton.com/msx-client-ios/TestSpecs.git,https://github.com/CocoaPods/Specs.git
當(dāng)看到以下輸出表示遠(yuǎn)程驗(yàn)證通過(guò)
-> TestBizKit (1.0.0)
TestBizKit passed validation.
驗(yàn)證完之后向遠(yuǎn)程TestSpecs提交podspec惠桃,執(zhí)行命令:# 注意:這一步有區(qū)別
pod repo push TestSpecs BWTKit.podspec --sources=http://git.bwton.com/msx-client-ios/TestSpecs.git,https://github.com/CocoaPods/Specs.git
完成之后這個(gè)BWTKit庫(kù)就添加到我們的私有TestSpecs中了,可以進(jìn)入到~/.cocoapods/repos/TestSpecs目錄下查看辖试,也可以去遠(yuǎn)程倉(cāng)庫(kù)查看辜王。私有庫(kù)引入私有庫(kù)制作完畢。
4.在個(gè)人項(xiàng)目中引入私有庫(kù)
在需要引入私有庫(kù)的項(xiàng)目的podfile文件中引入:
source 'https://github.com/CocoaPods/Specs.git'
source 'http://git.bwton.com/msx-client-ios/TestSpecs.git'
pod 'TestBizKit', '~> 1.0.0'
這時(shí)TestKit和TestBizKit都會(huì)被引入到項(xiàng)目中
三.更新私有庫(kù)
搜索不到遠(yuǎn)程私有庫(kù)時(shí)罐孝,可以執(zhí)行以下操作:
1.進(jìn)入終端執(zhí)行命令:
rm ~/Library/Caches/CocoaPods/search_index.json
2.進(jìn)入到本地索引文件目錄(~/.cocoapods/repos/TestSpecs)下執(zhí)行命令:
git pull
接著搜索私有庫(kù)即可搜到
四.如何刪除私有庫(kù)
1.刪除整個(gè)TestSpecs文件呐馆,執(zhí)行命令:
pod repo remove TestSpecs
這樣本地的就刪除了,還可以通過(guò)以下命令加回來(lái):
pod repo add TestSpecs http://git.bwton.com/msx-client-ios/TestSpecs.git
2.刪除某個(gè)私有庫(kù)
進(jìn)入目錄 ~/.cocoapods/repos/TestSpecs下,刪除私有庫(kù)目錄莲兢,執(zhí)行命令:
rm -Rf TestKit
然后將本地的修改推到遠(yuǎn)程庫(kù)汹来,執(zhí)行命令:
git add -A
git commit -m '刪除TestKit私有庫(kù)'
git push origin master
操作完畢