使用Cocoapods創(chuàng)建私有庫Pods(基本篇)

前言

今天這篇文章記錄自己使用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)個贊吧,謝謝膀值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棍丐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沧踏,更是在濱河造成了極大的恐慌歌逢,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翘狱,死亡現(xiàn)場離奇詭異秘案,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門阱高,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赚导,“玉大人,你說我怎么就攤上這事赤惊『鹁桑” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵未舟,是天一觀的道長圈暗。 經(jīng)常有香客問我,道長裕膀,這世上最難降的妖魔是什么员串? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮昼扛,結(jié)果婚禮上寸齐,老公的妹妹穿的比我還像新娘。我一直安慰自己抄谐,他們只是感情好访忿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斯稳,像睡著了一般海铆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挣惰,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天卧斟,我揣著相機(jī)與錄音,去河邊找鬼憎茂。 笑死珍语,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竖幔。 我是一名探鬼主播板乙,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拳氢!你這毒婦竟也來了募逞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤馋评,失蹤者是張志新(化名)和其女友劉穎放接,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體留特,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纠脾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年玛瘸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苟蹈。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡糊渊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出慧脱,到底是詐尸還是另有隱情再来,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布磷瘤,位于F島的核電站,受9級特大地震影響搜变,放射性物質(zhì)發(fā)生泄漏采缚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一挠他、第九天 我趴在偏房一處隱蔽的房頂上張望扳抽。 院中可真熱鬧,春花似錦殖侵、人聲如沸贸呢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楞陷。三九已至,卻和暖如春茉唉,著一層夾襖步出監(jiān)牢的瞬間固蛾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工度陆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艾凯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓懂傀,卻偏偏與公主長得像趾诗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蹬蚁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359