創(chuàng)建屬于自己的遠(yuǎn)程私有庫(kù)一

私有庫(kù)的是隨著公司在多個(gè)項(xiàng)目開展的時(shí)候,把一些常用的工具類制作成pod,方便在多個(gè)項(xiàng)目中使用,避免了來(lái)回拖入代碼造成的時(shí)間浪費(fèi)祟蚀。iOS組件化實(shí)現(xiàn)基本基于cocoapods,如何使用cocoapods創(chuàng)建自己的組件庫(kù),是實(shí)現(xiàn)組件化的第一要素割卖。

創(chuàng)建一個(gè)遠(yuǎn)程私有庫(kù)前酿,需要一個(gè)私有庫(kù),需要一個(gè)索引庫(kù):

私有庫(kù):用于真正存放組件代碼

索引庫(kù):存放spec文件鹏溯,用于所引導(dǎo)代碼的位置

索引庫(kù)和私有庫(kù)的關(guān)系可以簡(jiǎn)單理解就像指針和對(duì)象關(guān)系罢维,指針就是索引庫(kù),對(duì)象就是私有庫(kù)

以碼云“gitee”為例:

一丙挽、創(chuàng)建私有庫(kù)的索引庫(kù)——(如XXPrivateSpec)

1肺孵、首先在終端命令行 pod repo 查看本地索引庫(kù),可以查看只有一個(gè)Master索引庫(kù)颜阐,默認(rèn)情況下是只有一個(gè)master倉(cāng)庫(kù)平窘,我們常用的SDWebImage,AFNetWoking等的本地索引就在這個(gè)倉(cāng)庫(kù)中。

master

- Type: git (master)

- URL:?https://github.com/CocoaPods/Specs.git

? ? 2瞬浓、添加一個(gè)自己的索引庫(kù) 首先在gitee上創(chuàng)建一個(gè)新的項(xiàng)目命名XXPrivateSpec

? ? 3、添加自己的本地遠(yuǎn)程索引庫(kù) 后面的地址就是遠(yuǎn)端工程的“克隆/下載"地址

pod?repo?add XXPrivateSpec?https://gitee.com/XXX/XXPrivateSpec.git

4蓬坡、可以Command+shif+G 到$?~/.cocoapods/repos 下查看自己的本地倉(cāng)庫(kù)路徑猿棉,添加完以后可以通過pod repo命令查看磅叛,本地會(huì)多一個(gè)你剛才添加的鏡像庫(kù),如果想要移除剛才添加的鏡像庫(kù)萨赁,執(zhí)行pod repo --remove?XXXPrivateSpec命令就可以了弊琴。

? 5、說(shuō)明:該倉(cāng)庫(kù)下只放各組件索引文件杖爽,不存放組件代碼(組件代碼需要重新創(chuàng)建組件工程)

二敲董、創(chuàng)建自己的組件庫(kù)工程(本地和遠(yuǎn)端的倉(cāng)庫(kù)podspec)

? ? 1、碼云托管平臺(tái)上慰安,在Gitee上創(chuàng)建一存放基礎(chǔ)組件的工程XXXComponent(工程創(chuàng)建和上一步類似)

2腋寨、快速創(chuàng)建一個(gè)模板工程用于編輯自己的基礎(chǔ)組件

cd /Users/XXX/Desktop/PrivateLib

? ? ? 終端命令輸入:

? ? ? pod lib create 組件庫(kù)名?

? ? ? 接下來(lái)會(huì)輸入一系列的東西,根據(jù)提示輸入化焕,賬戶密碼等的如下圖:

3萄窜、以上信息完成以后,Xcode會(huì)自動(dòng)打開創(chuàng)建好的模板工程撒桨,在這里可以把自己編的本地組件文件替換工程中的Replace.m文件

? ? 4查刻、終端 cd 命令行 切換到Example文件路徑下,執(zhí)行pod install命令? ??

出現(xiàn)pod installation complete!那么本地私有庫(kù)就完成凤类,工程中就能看到導(dǎo)入的組件庫(kù)文件穗泵,然后可以編輯修改組件庫(kù)

5、最后就是將本地的組件庫(kù)地址提交到遠(yuǎn)端組件庫(kù)工程XXXComponent上(注意此處不是索引庫(kù)谜疤,切莫弄混淆了)

? ? ? ? 5.1 切換到本地組件庫(kù)工程目錄下佃延,執(zhí)行下面三條命令(這里就將模板文件上傳到了遠(yuǎn)端)

cd /Users/XXX/Desktop/PrivateLib/FoundationExtention/XXXComponent

git remote add origin https://gitee.com/XXX/XXXComponent.git

? ??? ??? ??git push -u origin master

5.1 修改模板工程中的podspec文件, 打開Xcode工程茎截,找到.podspec

s.version ?版本號(hào)初次使用不需要修改

s.summary ?一段簡(jiǎn)介描述(可以修改為自己想要的)

s.homepage = '工程主頁(yè)地址'

s.source ? = '項(xiàng)目倉(cāng)庫(kù)地址苇侵,不是索引庫(kù)地址'

?5.2 修改完這些主要信息之后,可以用?pod lib lint --allow-warnings校驗(yàn)本地podspec文件是否正確企锌,如有error則需要逐條修改

? ? ? ? 5.3 保存本地倉(cāng)庫(kù)代碼修改榆浓,打上tag標(biāo)簽,推送到遠(yuǎn)程倉(cāng)庫(kù)撕攒,使用如下命令行

? ??? ??? ??git?add?.

git?commit??-m??'初始化' ? ? ?(-m 后面是對(duì)本次提交信息的描述)

git?push?-u?origin?master

5.4 校驗(yàn)遠(yuǎn)端podspec文件是否正確陡鹃,終端輸入?pod spec lint --allow-warnings

?當(dāng)輸出XXXComponent.podspec passed validation. 說(shuō)明遠(yuǎn)端校驗(yàn)通過

如果出現(xiàn)了警告,可以嘗試將s.homepage的文件地址刪掉一級(jí)嘗試

5.5 給版本打一個(gè)標(biāo)簽

? ? ? ? ? ? git tag 0.1.0

? ? ? ? ? ? git push --tags?

? ? ? ? ? ? 小結(jié):

? ? ? ? ? ? ? ? ? ? 1)打分支這一步很重要抖坪,直接決定下面的步驟是否能夠繼續(xù)萍鲸,當(dāng)我們有版本更新的時(shí)候就要更改版本號(hào)

? ? ? ? ? ? ? ? ? ? 2)這里默認(rèn)是0.1.0,一定要與之前我們?cè)赬code中看到的s.version號(hào)一致擦俐!

5.6 最后一步建立關(guān)聯(lián)脊阴,將podspec文件關(guān)聯(lián)到遠(yuǎn)端私有索引庫(kù)XXXPrivateSpec.pod repo push?XXPrivateSpec ?XXXComponent.podspec--allow-warnings

注意:注意:提交后,依然會(huì)驗(yàn)證 podspec文件,驗(yàn)證通過后 會(huì)自動(dòng)上傳到在遠(yuǎn)程spec索引庫(kù)嘿期。通過這一步我們就同步好了遠(yuǎn)程和本地索引庫(kù)

5.7修改基礎(chǔ)工程進(jìn)行版本迭代品擎,本質(zhì)上修改XXXComponent項(xiàng)目。并且修改是修改podspec文件tag(s.version)备徐,打標(biāo)簽萄传。并切將podspec文件推送到遠(yuǎn)端私有索引庫(kù)。即重復(fù)5.3~5.5 把文件修改推送到遠(yuǎn)端蜜猾。

最后還要進(jìn)行組件庫(kù)與遠(yuǎn)端索引庫(kù)的關(guān)聯(lián):

即:pod repo push?XXPrivateSpec ?XXXComponent.podspec--allow-warnings

三秀菱、創(chuàng)建新工程,使用自己的私有庫(kù)

cd 到新工程目錄

? ? ? ? pod init ? ?這里需要

??當(dāng)我們?cè)谑褂米约簞?chuàng)建的私有庫(kù)時(shí)蹭睡,Podfile文件衍菱,要引用我們之前第一步創(chuàng)建的索引倉(cāng)庫(kù)地址,也就是指針倉(cāng)庫(kù)地址

下面是Podfile

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

source?'https://gitee.com/XXX/XXPrivateSpec.git'

# Uncomment the next line to define a global platform for your project

# platform :ios, '9.0'

target?'TestP1'?do

?# Uncomment the next line if you're using Swift or would like to use dynamic frameworks

?use_frameworks!

?pod?'XXXComponent',?'~> 0.1.0'

end

然后 pod install 就可以了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棠笑,一起剝皮案震驚了整個(gè)濱河市梦碗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蓖救,老刑警劉巖洪规,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異循捺,居然都是意外死亡斩例,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門从橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)念赶,“玉大人,你說(shuō)我怎么就攤上這事恰力〔婷眨” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵踩萎,是天一觀的道長(zhǎng)停局。 經(jīng)常有香客問我,道長(zhǎng)香府,這世上最難降的妖魔是什么董栽? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮企孩,結(jié)果婚禮上锭碳,老公的妹妹穿的比我還像新娘。我一直安慰自己勿璃,他們只是感情好擒抛,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布推汽。 她就那樣靜靜地躺著,像睡著了一般歧沪。 火紅的嫁衣襯著肌膚如雪民泵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天槽畔,我揣著相機(jī)與錄音,去河邊找鬼胁编。 笑死厢钧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嬉橙。 我是一名探鬼主播早直,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼市框!你這毒婦竟也來(lái)了霞扬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤枫振,失蹤者是張志新(化名)和其女友劉穎喻圃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粪滤,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斧拍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杖小。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肆汹。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖予权,靈堂內(nèi)的尸體忽然破棺而出昂勉,到底是詐尸還是另有隱情,我是刑警寧澤扫腺,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布岗照,位于F島的核電站,受9級(jí)特大地震影響斧账,放射性物質(zhì)發(fā)生泄漏谴返。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一咧织、第九天 我趴在偏房一處隱蔽的房頂上張望嗓袱。 院中可真熱鬧,春花似錦习绢、人聲如沸渠抹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梧却。三九已至奇颠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間放航,已是汗流浹背烈拒。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留广鳍,地道東北人荆几。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赊时,于是被迫代替她去往敵國(guó)和親吨铸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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