CocoaPods管理本地庫(kù)

CocoaPods 是一個(gè)ruby工具. Mac下優(yōu)秀的第三方包管理工具,幫助管理和集成,自動(dòng)更新網(wǎng)絡(luò)上的第三方類庫(kù).方便了配置.大概原理是將所有依賴庫(kù)都放到另一個(gè)名為pods項(xiàng)目中.然后讓主項(xiàng)目依賴pods項(xiàng)目.

CocoaPods本地的存儲(chǔ)路徑

本地一個(gè)名為 .cocoapods的文件 下載到本地的第三方庫(kù)的文件路徑


repos路徑.png
屏幕快照 specs路徑.png
  • specs,現(xiàn)在pod能找到第三方庫(kù)的目錄.然后就可以根據(jù)里面所寫(xiě)的內(nèi)容完成下載.

個(gè)人或公司在開(kāi)發(fā)過(guò)程中,會(huì)積累很多可以復(fù)用的代碼包,有些我們不想開(kāi)源,又想像開(kāi)源庫(kù)一樣在CocoaPods中管理它們,那么通過(guò)私有倉(cāng)庫(kù)來(lái)管理就很必要。

CocoaPods默認(rèn)只能管理基于git管理的代碼,如果要使用svn或者mercurial管理代碼,則需要安裝一些插件(cocoapods-repo-svn).我們通過(guò)git上的插件把私有代碼通過(guò)svn下載到本地的私有倉(cāng)庫(kù).這樣委托pod來(lái)管理.

1.在git上的設(shè)置私有代碼庫(kù)

以下方法都是基于git來(lái)操作。
1.創(chuàng)建代碼倉(cāng)庫(kù)

將自己寫(xiě)的代碼推送到git服務(wù)器。如果代碼可以開(kāi)源的話,可以用github來(lái)托管。參考我們所開(kāi)源的代碼

2.給穩(wěn)定的代碼打上版本tag,一般以版本號(hào)作為tag名

$ git tag -a

將tag推送到git服務(wù)器

$ git push --tags

這里一般是類似1.0.2的版本號(hào)。版本號(hào)的規(guī)范參考這里

3.創(chuàng)建spec文件

在shell中運(yùn)行:

$ pod spec create

會(huì)在當(dāng)前目錄創(chuàng)建.podspec文件,創(chuàng)建的文件是個(gè)完整的配置模板,根據(jù)字面意思以及注釋,大體上都能弄明白。不清楚的地方可以到https://guides.cocoapods.org/making/specs-and-specs-repo.html看看,github上也有很多開(kāi)源代碼可以參考。

4.驗(yàn)證spec文件有效性

spec文件修改完成后,運(yùn)行

pod spec lint .podspec

根據(jù)輸出提示修改你的spec文件或者代碼,直到能pass.

5.創(chuàng)建spec repository(spec 倉(cāng)庫(kù))

除了上面創(chuàng)建的代碼倉(cāng)庫(kù),還需要?jiǎng)?chuàng)建一個(gè)spec倉(cāng)庫(kù),存放spec,目錄結(jié)構(gòu)應(yīng)該遵照以下的規(guī)范:

[plain] view plaincopy

├── Specs
    └── [SPEC_NAME]
        └── [VERSION]
            └── [SPEC_NAME].podspec

例:

├─Specs
    ├──QueryKit/
    ├── 0.8.0
    │  └── QueryKit.podspec
    ├── 0.8.1
    │  └── QueryKit.podspec
    ├── 0.8.2
    │  └── QueryKit.podspec
    └── 0.8.3
    └── QueryKit.podspec
    URITemplate
    ├── 1.0.0
    │  └── URITemplate.podspec
    └── 1.0.1
    └── URITemplate.podspec

這里的版本號(hào)要和代碼倉(cāng)庫(kù)里的tag一一對(duì)應(yīng)。

將其推送到git服務(wù)器,參考我們開(kāi)源的代碼

6.添加私有repo到CocoaPods中

$ pod repo add REPO_NAME SOURCE_URL

7.驗(yàn)證私有repo安裝無(wú)誤:

$ cd ~/.cocoapods/repos/REPO_NAME
$ pod repo lint .

后面如果還要往REPO_NAME里添加新包,只需運(yùn)行下面命令:

$ pod repo push REPO_NAME SPEC_NAME.podspec

如要?jiǎng)h除私有repo:

$ pod repo remove [name]

8.添加包到工程的Podfile中如下:

source 'https://github.com/agdsdl/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'


platform :ios, "7.0"


target "XXX" do
pod 'DLSlideView','~>0.8.1'
end
  1. That's it!

接下來(lái)測(cè)試運(yùn)行:

到工程目錄下運(yùn)行

$ pod update

依賴包更新完畢后,打開(kāi)workspace文件,點(diǎn)擊Go!

一些坑:

很容易把spec repository和代碼repository弄混,我一開(kāi)始就在這里掛起了好久。代碼repository是代碼倉(cāng)庫(kù),我們把包代碼上傳到這個(gè)倉(cāng)庫(kù)。

spec repository是配置倉(cāng)庫(kù),所有的配置按照包名、版本號(hào)分門(mén)別類的存放在這個(gè)倉(cāng)庫(kù)。這個(gè)倉(cāng)庫(kù)只用來(lái)存放spec文件,不存放代碼。

spec repository可以放在本地,不用git服務(wù)器,但是貌似必須用git init初始化這個(gè)目錄。

詳細(xì)的一些東西可以看這里

1到8步都只需在本機(jī)執(zhí)行一次,團(tuán)隊(duì)里的其他人只需更新Podfile就可以直接使用私有倉(cāng)庫(kù)了。

2.使用cocoapods-repo-svn管理svn上的代碼

1.安裝**cocoapods-repo-svn **
gem install cocoapods-repo-svn

2.安裝 cocoapods-repo-svn 后,添加自己的Spec源,并驗(yàn)證是否成功(檢查 ~/.cocoapods/repos 里面有沒(méi)有XXXSpecs)

cocoapods-repo-svn Commands

Add
$ pod repo-svn add my-svn-repo http://svn-repo-url

Update
$ pod repo-svn update my-svn-repo

Remove
$ pod repo-svn remove my-svn-repo

把svn上的內(nèi)容下載到本地,通過(guò)pod來(lái)管理

添加成功.png

有時(shí)候沒(méi)權(quán)限的時(shí)候, 可以先用svn下載到本地再執(zhí)行添加命令

svn checkout http://your SVN Address

項(xiàng)目管理:CocoaPods建立私有倉(cāng)庫(kù)
http://www.cocoachina.com/ios/20150508/11785.html

CocoaPods 英文說(shuō)明
https://guides.cocoapods.org

git安裝和使用就看這篇文章
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

cocoapods的使用安裝就看這篇文章
http://code4app.com/article/cocoapods-install-usage

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容