iOS組件化開發(fā):創(chuàng)建遠(yuǎn)程私有庫(kù)

隨著公司的發(fā)展和部門整合岛请,業(yè)務(wù)模塊不斷增加沫浆,所有部門的iOS客戶端也被統(tǒng)一管理,為了解決耦合嚴(yán)重斩萌,代碼統(tǒng)一缝裤,所以組件化開發(fā)必不可少。

使用組件的目的其實(shí)就是為了將相同的非業(yè)務(wù)的代碼提取出來以供不同業(yè)務(wù)組進(jìn)行使用的一套底層工具颊郎。下面我們直接進(jìn)入到正題憋飞,看看組件化開發(fā)的流程。

一姆吭、創(chuàng)建私有庫(kù)索引

首先在碼云上建立一個(gè)私有庫(kù)索引榛做,起名為CCComponentSpec,如圖:

創(chuàng)建私有庫(kù)索引.png

點(diǎn)擊創(chuàng)建按鈕内狸,創(chuàng)建完成检眯,如圖:
創(chuàng)建完成.png

至此,創(chuàng)建私有庫(kù)索引完成昆淡,其實(shí)跟創(chuàng)建一個(gè)項(xiàng)目是一毛一樣的锰瘸。。昂灵。

二避凝、本地添加私有庫(kù)索引

1.查看本地索引庫(kù)

打開terminal舞萄,輸入命令 pod repo,查看到本地的公有索引庫(kù)管削,如下圖:

查看本地索引庫(kù)1.png

2.添加私有庫(kù)索引

輸入命令

pod repo add CCComponentSpec https://gitee.com/captain-gao/CCComponentSpec.git

再次查看本地索引庫(kù)就會(huì)發(fā)現(xiàn)剛剛創(chuàng)建的遠(yuǎn)程索引庫(kù)被添加到了本地倒脓,如圖:


查看本地索引庫(kù)2.png

三、創(chuàng)建基礎(chǔ)組件庫(kù)

1.根據(jù)步驟一中的方法含思,在碼云上創(chuàng)建組件庫(kù)崎弃,命名為CCBasicComponents,如圖:
基礎(chǔ)組件庫(kù).png
2.創(chuàng)建CCBasicComponents本地庫(kù)

在terminal中cd到桌面含潘,并調(diào)用命令饲做,然后根據(jù)自身需要回答問題進(jìn)行配置即可,如圖:


創(chuàng)建基礎(chǔ)組件庫(kù).png

最后遏弱,項(xiàng)目本地組件庫(kù)創(chuàng)建完成后會(huì)自動(dòng)打開項(xiàng)目艇炎。下面我們可以向組件庫(kù)中添加公共組件類。

3.添加公共組件類
添加公共組件類.png
  • Assets文件夾:內(nèi)部放資源文件腾窝,例如圖片,xib居砖,Storyboard等虹脯。
  • Classes文件夾:顧名思義,類文件夾奏候,放的都是類文件循集,也就是我們說的公有組件。
4.安裝

通過命令pod install安裝

安裝.png

  • 不知道為什么我的電腦每次執(zhí)行完pod install之后都會(huì)有這個(gè)XCode意外退出的彈窗蔗草,不過沒什么影響咒彤,重新打開就ok了。
5.修改.podspec文件

.podspec文件修改完成如圖:


修改文件.png

四咒精、關(guān)聯(lián)組件代碼

1.將組件代碼關(guān)聯(lián)到倉(cāng)庫(kù)

在terminal中依次執(zhí)行下面的命令

git add .
git commit -m "關(guān)聯(lián)組件代碼"
git remote add origin https://gitee.com/captain-gao/CCBasicComponents.git
git push -f origin master
  • 至此镶柱,組件代碼和遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)完成。
2.打tag并上傳到git
打tag.png
  • 注:所打的tag要和.podspec中的s.version保持一致模叙,否則歇拆,后面不能通過遠(yuǎn)程驗(yàn)證。
    下面我們?nèi)ミh(yuǎn)程私有庫(kù)去看下這個(gè)tag是否創(chuàng)建成功


    tag1.png

    tag2.png

五范咨、驗(yàn)證

1.本地驗(yàn)證
pod lib lint --sources='[spec遠(yuǎn)端路徑],https://github.com/CocoaPods/Specs.git' --allow-warnings

驗(yàn)證成功 CCBasicComponents passed validation.

驗(yàn)證成功.png

2.遠(yuǎn)程驗(yàn)證
pod spec lint --sources='[spec遠(yuǎn)端路徑],https://github.com/CocoaPods/Specs.git' --allow-warnings

驗(yàn)證成功


遠(yuǎn)程驗(yàn)證.png
  • 注:在遠(yuǎn)程驗(yàn)證會(huì)驗(yàn)證遠(yuǎn)程tag下面的tag的編號(hào)和所有的組件故觅,tag必須要相同才能通過,另渠啊,組件更新后需要重新傳到遠(yuǎn)程tag下输吏,否則也會(huì)驗(yàn)證失敗。

六替蛉、提交.podspec文件

pod repo add CCComponentSpec [spec遠(yuǎn)端路徑]
pod repo push CCComponentSpec CCBasicComponents.podspec --allow-warnings --sources="[spec遠(yuǎn)端路徑],https://github.com/CocoaPods/Specs"
提交podspec文件.png

最后我們來到碼云的私有索引庫(kù)可以看到組件已經(jīng)上傳成功


成功.png

七贯溅、驗(yàn)證組件

pod search 'CCBasicComponents'
驗(yàn)證組件.png
  • 至此拄氯,組件即可以使用了。

八盗迟、更新組件

1.向組件庫(kù)中添加類CCTools坤邪,如圖:
更新組件.png
2.向遠(yuǎn)程倉(cāng)庫(kù)更新代碼
git add .
git commit -m "創(chuàng)建新組建CCTools"
git push origin master
3.更新tag版本

修改podspec文件,將s.version = '0.1.0'改為s.version = '0.2.0'罚缕,
然后命令行輸入命令:

git tag -a '0.2.0' -m '新版本0.2.0'
git push --tags

這時(shí)候我們?nèi)ゲ榭催h(yuǎn)程倉(cāng)庫(kù)艇纺,就會(huì)發(fā)現(xiàn)有兩個(gè)tag


tag1.png

tag2.png

最后像步驟五一樣進(jìn)行本地和遠(yuǎn)程驗(yàn)證。

4.更新索引庫(kù)
pod repo push CCComponentSpec CCBasicComponents.podspec

九邮弹、使用組件

1.創(chuàng)建一個(gè)新項(xiàng)目黔衡,并創(chuàng)建podfile文件
pod init
2.添加引用和組件,如圖:
更新組件.png
3.安裝組件
pod install
4.安裝完成腌乡,如圖:
安裝完成.png

踩坑1:CDN: trunk Repo update failed - 2 error(s):
https://github.com/CocoaPods/CocoaPods/issues/9303

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盟劫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子与纽,更是在濱河造成了極大的恐慌侣签,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件急迂,死亡現(xiàn)場(chǎng)離奇詭異影所,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)僚碎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門猴娩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勺阐,你說我怎么就攤上這事卷中。” “怎么了渊抽?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蟆豫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我懒闷,道長(zhǎng)无埃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任毛雇,我火速辦了婚禮嫉称,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灵疮。我一直安慰自己织阅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布震捣。 她就那樣靜靜地躺著荔棉,像睡著了一般闹炉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上润樱,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天渣触,我揣著相機(jī)與錄音,去河邊找鬼壹若。 笑死嗅钻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的店展。 我是一名探鬼主播养篓,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赂蕴!你這毒婦竟也來了柳弄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤概说,失蹤者是張志新(化名)和其女友劉穎碧注,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糖赔,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡应闯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挂捻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡船万,死狀恐怖刻撒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耿导,我是刑警寧澤声怔,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站舱呻,受9級(jí)特大地震影響醋火,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜箱吕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一芥驳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧茬高,春花似錦兆旬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宿饱。三九已至,卻和暖如春脚祟,著一層夾襖步出監(jiān)牢的瞬間谬以,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工由桌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留为黎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓沥寥,卻偏偏與公主長(zhǎng)得像碍舍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邑雅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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