通常,我們都是用git來管理倉(cāng)庫(kù),常見的就是在github上制作pod庫(kù),當(dāng)然,在github上只有公共庫(kù)是免費(fèi)的,私有倉(cāng)庫(kù)是收費(fèi)的,而gitlab是可以免費(fèi)使用私有pod庫(kù)(不只有g(shù)ithub,還有g(shù)itlab,分清楚,,,),由于公司項(xiàng)目是使用svn托管,所以筆者在這里,希望把pod庫(kù)托管在公司的svn服務(wù)器上,而cocoapods是支持svn的,所以,來吧,搞起,不廢話!
1.1 準(zhǔn)備工具
需要svn,cocoapods,cocoapods-repo-svn 。
svn:mac上推薦使用cornerstone可視化界面工具
cocoapods:讀者自己去安裝,ios開發(fā)使用到的三方管理庫(kù)
cocoapods-repo-svn:cocoapods的svn管理插件
我就從 cocoapods-repo-svn 說起,開始下面...
1.2 cocoapods-repo-svn
roguedeMacBook-Pro:~ rogue$ gem install cocoapods-repo-svn
然后安裝成功完畢!
1.3 在svn上創(chuàng)建私有庫(kù)
在cornerstone創(chuàng)建一系列文件夾,先看圖片

我來解釋一下(以下目錄分為手動(dòng)創(chuàng)建和自動(dòng)創(chuàng)建,手動(dòng)使用 ++ 表示,自動(dòng)用==表示):
XhlLibraries(++:一級(jí)目錄)
- XhlProjects(++:存儲(chǔ)執(zhí)行代碼文件,就是存放我們pod下來之后可見的.h/m文件)
- XhlLocalTool(++:創(chuàng)建的一個(gè)庫(kù)文件,類似于AFNetworking,MBProgressHUD)
- branches(==:分支)
- tags(==:標(biāo)記)
- trunk(==:主干)
- XhlLocalTool(++:創(chuàng)建的一個(gè)庫(kù)文件,類似于AFNetworking,MBProgressHUD)
- XhlSpecs(++:存儲(chǔ)各個(gè)版本,我們pod可以指定不同的版本,pod 'MBProgressHUD', '~> 1.1.0',類似這個(gè))
看見上面這個(gè)結(jié)構(gòu)了嗎,請(qǐng)結(jié)合這個(gè)圖查看,當(dāng)手動(dòng)創(chuàng)建了XhlLocalTool之后,需要勾選cornerstone上的這個(gè)按鈕,讓它自動(dòng)創(chuàng)建trunk、branches、tags這3個(gè)文件夾

分割線------------------------------------------------------------------------------------------
現(xiàn)在,我們繼續(xù),把這個(gè)文件check out出來在本地。
XhlLibraries->XhlProjects->trunk
檢出之后,我們打開終端,把目錄切換在trunk文件文件夾所在的根目錄
在trunk目錄下,命令操作
roguedeMacBook-Pro:~ rogue$ pod spec create XhlSpecs
該命令會(huì)創(chuàng)建一個(gè) XhlSpecs.podspec文件,這個(gè)文件很重要
接下來,我們手動(dòng)穿件一個(gè)項(xiàng)目和一個(gè)文件夾,最后的目錄結(jié)構(gòu)如下圖

我來解釋下,在命令行操作之后,只會(huì)有一個(gè)文件,就是 XhlLocalTool.podspec文件,而其他的 "XhlLocalToolDemo"和"XhlLocalToolDemo.xcodeproj"是我剛創(chuàng)建的一個(gè)工程文件,而文件夾"XhlLocalTool"也是我新創(chuàng)建的一個(gè)文件夾,里面的"XhlObject.h/m"文件,則是我創(chuàng)建的私有文件,就是說,pod install之后,會(huì)導(dǎo)入這兩個(gè)文件到被依賴的項(xiàng)目里,
這里配置XhlLocalTool.podspec文件
大家可以把我的這個(gè)寫法配置進(jìn)去,不過要修改4個(gè)地方
- s.version = 0.0.4 (每次升級(jí)修改版本,都需要修改此標(biāo)簽,就是pod 'MBProgressHUD', '~> 1.1.0')
- s.source = { :svn => "svn://xxx/xxx/xxx/xxx/XhlLibraries/XhlProjects/XhlLocalTool", :tag => "#{s.version}" } (這里配置svn的路徑,由于是公司文件路徑,所以我使用xxx來替代前面的路徑,而讀者只需要讀取后面的有用的路徑就可以了)
- s.frameworks = "UIKit", "Foundation"(這里一般寫入依賴的系統(tǒng)庫(kù)文件)
- s.requires_arc = true(這里配置arc模式)
- 關(guān)于其他的命令,大家可以去官網(wǎng)查看
接下來,就是用cornerstone進(jìn)行commit操作,把剛才的代碼,提交到服務(wù)器上?。?!

1.4 打標(biāo)簽 tag
現(xiàn)在,在svn服務(wù)器上,可以查看到我們剛才commit的代碼,因?yàn)槲覀兪窃趖runk下操作的,現(xiàn)在,我們需要打標(biāo)簽,所以打標(biāo)簽,就是選中 右鍵選中trunk->tag->輸入版本,版本就是我們剛才提交的s.version
接下來,看圖

看 "0.0.4",我們剛才打的標(biāo)簽(0.0.1、0.0.2、0.0.3讀者不用關(guān)心,是筆者打的歷史版本)
打了標(biāo)簽之后,我們驗(yàn)證是否通過,給出以下測(cè)試代碼
在trunk目錄下
出現(xiàn)最后一行的
就表示成功了,通過驗(yàn)證
1.5 創(chuàng)建私有庫(kù)
還是在trunk目錄下,執(zhí)行命令
注意這里,路徑是 XhlSpecs,不是XhlProjects
執(zhí)行完這上面的代碼,再執(zhí)行下面的方法,把trunk里的代碼commit到XhlSpecs下
上面的命令執(zhí)行完成之后,刷新下svn,可以看到以下的目錄,在XhlSpecs里,會(huì)有版本號(hào)

**1.6 podfile配置 **
好了,到這里,就算完了,最后就講解下如何配置我們的podfile文件,我再這里直接貼出代碼吧,比較簡(jiǎn)單
當(dāng)然,別人要使用你的私有庫(kù),也需要配置 cocoapods-repo-svn 插件。而且,必須要求在終端上登錄賬號(hào),不然會(huì)提示安裝私有庫(kù)沒有權(quán)限,如何登錄svn,只需要隨便登錄一個(gè)svn查看文件就可以了
roguedeMacBook-Pro:~ rogue$ svn ls svn://xxx/xxx/xxx/xxx