(三)敲重點(diǎn)M唷碳想!遠(yuǎn)程私有庫(kù)來(lái)了!
ⅰ.遠(yuǎn)程私有庫(kù)演示(本篇)
ⅱ.遠(yuǎn)程私有庫(kù)升級(jí)+優(yōu)化
鋪墊一:Category文件夾凸郑,含有UIView+Category.h 和 UIView+Category.m驹暑,也就是需要集成的代碼玫恳。
鋪墊二:在碼云上創(chuàng)建兩個(gè)項(xiàng)目,一個(gè)存放自己的私有索引庫(kù)集TangyuanSpecs优俘,對(duì)應(yīng)地址1京办;一個(gè)管理某個(gè)部分的框架代碼TangyuanBase,對(duì)應(yīng)地址2兼吓。這里要注意的是臂港,創(chuàng)建TangyuanBase時(shí)不要初始化READEME文件,下面創(chuàng)lib的時(shí)候會(huì)包含视搏,不然提交的時(shí)候會(huì)報(bào)沖突审孽。
在cocoapods下,可以看到一開始只有master一個(gè)索引庫(kù)
我們把自己的私有庫(kù)集添加進(jìn)來(lái)浑娜,然后會(huì)發(fā)現(xiàn)repo下多了一個(gè)索引庫(kù)
pod repo add TangyuanSpecs 地址1
創(chuàng)建一個(gè)TangyuanBaseLib空文件夾佑力,在里面創(chuàng)建TangyuanBase的lib
創(chuàng)建完后可以看到下圖??的文件目錄,TangyuanBase里包含了spec文件筋遭、example測(cè)試工程及上面提到的READEME文件
找到Classes下的ReplaceMe文件打颤,刪掉,并把Category文件拖進(jìn)來(lái)漓滔,如下圖??
這里的Classes修改同時(shí)example工程里的podfile也會(huì)更新编饺,別忘了pod insatll
打開example工程,可以看到Category已經(jīng)被集成過(guò)來(lái)了响驴。
找到example工程里的podsepc文件進(jìn)行修改
s.name? ? ? ? = "名字" (ps:一般不用改)
s.version? ? ? = “0.1.0"? ? ( ps:版本號(hào)這個(gè)比較重要透且,打標(biāo)簽的時(shí)候要注意,這里默認(rèn)是0.1.0)
s.summary? ? ? = “TangyuanLib."? ? (ps:描述可以隨便寫)
s.description? = "detail description豁鲤,must be longer than s.summary”? (ps:詳細(xì)描述秽誊,字?jǐn)?shù)一定要超過(guò)summary)
s.homepage? ? = “xxxxxx"? (ps: TangyuanBase碼云上的主頁(yè)地址)
s.source? ? ? = { :git => "https://xxxxxx.git", :tag => "#{s.version}" }? ( ps: 碼云上的地址,也就是地址2)
好了琳骡,修改完后锅论,現(xiàn)在要把TangyuanBase整個(gè)文件夾都上傳到碼云上
pod lib lint ?(ps:先驗(yàn)證lib文件,通過(guò)后再git上傳)?
git add .
git commit -m 'x'
git remote add origin 地址2
git push -u origin master?
打標(biāo)簽楣号,一定要和spec里的version保持一致
git tag '0.1.0'
git push --tags
接下來(lái)最易,就要把spec文件上傳到自己的私有庫(kù)集
pod spec lint --allow-warnings
pod repo push TangyuanSpec(私有庫(kù)集名) TangyuanBase.podspec(要上傳的spec)?
然后我們可以看到cocoapods/repo/TangyuanSpecs下已經(jīng)有0.1.0版本的TangyuanBase的spec文件
pod search怒坯,完美??
新建一個(gè)工程,pod init耘纱,編寫podfile文件敬肚,默認(rèn)的pod是從master索引庫(kù)里找,我們這邊是私有索引庫(kù)束析,所以在上面要加上這個(gè)庫(kù)的source地址
接著pod install,如果報(bào)了錯(cuò)誤 [!] An unexpected version directory `Assets` was encountered for the `/Users/tangyuan/.cocoapods/repos/oschina-tangyuanliu-tangyuanbase/TangyuanBase` Pod in the `TangyuanBase` repository. ? ?那就把地址直接跟在pod后面
接著就能在工程里看到Category里的代碼已經(jīng)集成過(guò)來(lái)了
這個(gè)時(shí)候如果你要集成其他的一些公有庫(kù)憎亚,如AFNetworking等员寇,在Podfile文件還得加一句master的source地址,不然在私有庫(kù)里找AFNetworking是找不到的
? ? ? ? 遠(yuǎn)程私有庫(kù)的創(chuàng)建使用過(guò)程大致上就這些第美,由于涉及到的名詞比較多蝶锋,文章里我直接用具體的文件名字代替,大家一一對(duì)應(yīng)上即可什往。
文采不夠扳缕,全靠圖來(lái)湊??