前言
今天這篇文章記錄自己使用CocoaPods工具模擬創(chuàng)建自己的私有庫(這里使用的是github)豪墅,其實(shí)網(wǎng)上有很多教程彤悔,這里只是記錄自己的使用過程喷户,下面將盡量詳細(xì)記錄步驟始绍,希望對大家有用,覺得有用的小伙伴請高抬貴手點(diǎn)個贊哦垢揩!
模擬創(chuàng)建自己的私有庫
步驟一 創(chuàng)建一個組件git倉庫
我在GitHub服務(wù)器創(chuàng)建了一個名叫TLComponent的倉庫玖绿。創(chuàng)建好了之后,復(fù)制git倉庫地址叁巨,第一步就算完成了斑匪。
步驟二 添加私有庫到CocoaPods的repo
這一步就是將我們剛剛創(chuàng)建的組件庫地址和CocoaPods關(guān)聯(lián)起來,我們在pod install的時候锋勺,就會從我們私有倉庫下載蚀瘸。下面是添加的命令:
pod repo add REPO_NAME SOURCE_URL
REPO_NAME:就是自定義的私有庫的名字
SOURCE_URL:就是我們在git上創(chuàng)建的私有庫的git地址
我這里就是:
pod repo add TLComponent https://github.com/leechuanjun/TLComponent.git
添加完成后狡蝶,可以查看CocoaPods的repo多出來一個TLComponent,查看repo的方法如下:
ls ~/.cocoapods/repos
查看的結(jié)果就是:
TLComponent master
TLComponent這個就是我們新添加的我們自己有的贮勃,master就是原有的公共repo贪惹。
步驟三 為將要組件化的項(xiàng)目制作*.podspec文件
這里作為測試,我簡單的創(chuàng)建了一個testA的項(xiàng)目寂嘉,項(xiàng)目的目錄如下:
項(xiàng)目名:TLTestCom
項(xiàng)目下面有一個文件夾:TLComA奏瞬,里面隨便創(chuàng)建了一個類,這個類
就是我們即將作為組件加入私有庫的兩個文件垫释。
接下來在git服務(wù)器上為該項(xiàng)目創(chuàng)建一個git倉庫丝格,我的是倉庫地址是:
https://github.com/leechuanjun/TLTestCom.git
ps:testA和組件名字一致
接著就是要制作組件的podspec文件了,在項(xiàng)目的更目錄下創(chuàng)建一個testA.podspec文件棵譬,接著編輯podspec文件显蝌,文件內(nèi)容如下
Pod::Spec.new do |spec|
? ? #項(xiàng)目名稱
? ? spec.name? ? ? ? = 'TLTestCom'
? ? #版本號
? ? spec.version? ? ? = '0.1.0'
? ? #開源協(xié)議,記得創(chuàng)建一個LICENSE文件订咸,內(nèi)容可以百度
? ? spec.license? ? ? = {:type =>"MIT",:file => "LICENSE"}
? ? #對開源項(xiàng)目的描述
? ? spec.summary? ? ? = 'testA is a good component'
? ? #開源項(xiàng)目的首頁
? ? spec.homepage? ? = 'https://github.com/leechuanjun/TLTestCom'
? ? #作者信息
? ? spec.author? ? ? = {'TridonLee' => 'leechuanjun@163.com'}
? ? #項(xiàng)目的源和版本號
? ? spec.source? ? ? = { :git => 'https://github.com/leechuanjun/TLTestCom.git', :tag => '0.1.0' }
? ? #源文件曼尊,這個就是供第三方使用的源文件
? ? spec.source_files = "TLComA/*.{h,m}"
? ? #適用于ios7及以上版本
? ? spec.platform? ? = :ios, '8.0'
? ? #使用的是ARC
? ? spec.requires_arc = true
? ? #依賴AFNetworking,如果有什么第三方依賴這樣添加
? ? #spec.dependency 'AFNetworking'
end
編輯好了就可以保存脏嚷。關(guān)于podspec文件可以百度骆撇,還有一些配置信息我這里不需要就沒有列出來。這里需要注意的是父叙,也要在該目錄下創(chuàng)建一個LICENSE文件神郊,文件的內(nèi)容請自行百度,這里不添加這個文件趾唱,后面push的時候會報(bào)警告涌乳,而導(dǎo)致push失敗。
步驟四 發(fā)版甜癞,驗(yàn)證podspec文件夕晓,push podspec文件
創(chuàng)建好了podspec文件,假設(shè)我們的組件也開發(fā)好了悠咱,編譯ok蒸辆,接著就是把項(xiàng)目提交push到git服務(wù)器上去,然后發(fā)個版析既,也就是打個tag躬贡。我的步驟如下:
//添加所有新加的文件
$ git add .
//提交新添加的文件到本地git
$ git commit -m'add file'
//將本地更新push到遠(yuǎn)程git服務(wù)器
$ git push origin master
//給本地倉庫打個tag
$ git tag -m'add tag''0.1.0'
//將tag推送到遠(yuǎn)程服務(wù)器
$ git push --tags
接著就是驗(yàn)證我們剛才的podspec文件,驗(yàn)證指令是:
$ pod lib lint
如果沒有錯誤和警告我們就可以推送到服務(wù)器了眼坏,推送使用的命令如下:
$ pod repo push REPO_NAME? SPEC_NAME.podspec
它也會先驗(yàn)證拂玻,然后再推送。我這里推送testA命令是:
$ pod repo push TLComponent TLTestCom.podspec
如果沒有錯誤,但是有警告纺讲,我們就將警告解決,也可以加--allow-warnings來提交
$ pod repo push TLComponent TLTestCom.podspec --allow-warnings
相關(guān)操作如下所示:
4.最后就可以在pod search 搜索testA了,到這里我們私有庫也就成功囤屹。
$ pod search TLTestCom
-> TLTestCom (0.1.0)
?? testA is a good component
?? pod 'TLTestCom', '~> 0.1.0'
?? - Homepage: https://github.com/leechuanjun/TLTestCom
?? - Source:? https://github.com/leechuanjun/TLTestCom.git
?? - Versions: 0.1.0 [TLComponent repo]
操作如下:
使用私有庫
使用方式就是在Podfile中熬甚,添加我們自己私有源地址,然后pod我們的組件名字就可以了肋坚,例如:
# Uncomment the next line to define a global platform for your project
#官方Cocoapods的源
source 'https://github.com/CocoaPods/Specs.git'
#本地私有源
source 'https://github.com/leechuanjun/TLComponent.git'
# platform :ios, '8.0'
target 'TLFirstProject' do
? # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
? # use_frameworks!
? # Pods for TLFirstProject
? pod 'AFNetworking'
? pod 'TLTestCom'
? target 'TLFirstProjectTests' do
? ? inherit! :search_paths
? ? # Pods for testing
? end
? target 'TLFirstProjectUITests' do
? ? inherit! :search_paths
? ? # Pods for testing
? end
end
最后pod install就可以啦乡括。
寫在最后
最后提醒大家,記得添加.gitignore文件智厌,過濾提交的git的內(nèi)容诲泌,不然把一些不必要的文件都提交到服務(wù)器上。認(rèn)真想起來其實(shí)建立私有庫很簡單铣鹏,就是那么幾步敷扫。創(chuàng)建一些文件,配置一下就可以了诚卸。后面一篇葵第,我會介紹一下使用一些腳本,來簡化過程合溺,減少一些編輯卒密,設(shè)置過程,有些必要過程還是必須的棠赛。如果覺得此文中有哪些不明白的地方哮奇,可以留言,或者發(fā)私信睛约,共同探討鼎俘。如果覺得文中有不對的地方也請大家慷慨指出,以便我改正痰腮。最后謝謝大家的閱讀而芥,喜歡的話就請點(diǎn)個贊吧,謝謝膀值。