組件化遠程私有庫解決方案(cocoapods基于git 、svn)----高級版

前言

隨著業(yè)務(wù)越來越龐大岩馍,在單工程中碉咆,app中代碼逐漸越來越大,面對高耦合和難以復(fù)用的模塊蛀恩,我們就需要進行重構(gòu)了疫铜。而面對多條業(yè)務(wù)線,組件化是一種優(yōu)秀的解決方案双谆,將需要的組件以pod私有庫形式安裝到主工程中壳咕,組件間各自獨立,解耦顽馋,僅僅依賴一個中間件進行通訊谓厘。那么對于各個組件托管到遠程平臺最常用的是git,git的優(yōu)越性也無需贅言寸谜,但是很多公司對于代碼管理往往是本公司的svn服務(wù)器竟稳,本文的重點也是講解一下svn服務(wù)器托管的操作确虱,這在網(wǎng)上資源是很少有正確的唁情,這篇文章帶你真正學(xué)會cocoapods 基于svn托管方式腮鞍。

鄭重申明

本文是一篇高級教程截汪,不提供入門基礎(chǔ)教程儿咱。

首先我們以git為基礎(chǔ)講解代碼托管原理嗤堰,請看下圖:

git 操作方式

1.首先我們需要一個遠程托管倉庫嫡锌,git或者svn产舞。
2.必須明確一個概念我們需要兩個遠程倉庫巾陕,一個是遠程的索引庫和一個遠程的源碼庫讨跟,cocoapods 基本原理也是這樣的,平時采用的方式和我們組件化唯一區(qū)別就是將公有變?yōu)樗接小?br> 我們通過將遠程索引庫添加到本地惜论,然后在本地生成索引文件许赃,當(dāng) pod 'LibBase',pod install,首先會在本地索引文件中查找到相應(yīng)庫文件地址進行本地clone,這樣我們就可以使用了。
3.當(dāng)我們將代碼傳到遠程源碼倉庫以后馆类,需要在進行第5步操作混聊,向私有索引庫提交,這里需要解釋一下這個過程,當(dāng)我們通過命令行操作向本地私有索引庫推入索引文件句喜,同時也會添加到遠程索引庫预愤,這樣當(dāng)小伙伴要使用你的庫,只需要更新他本地的就可以了咳胃。

那么以上就是git 方式的主要操作植康,下面我重點演示svn方式销睁。

1.選用第三方svn服務(wù)器作為測試:

http://code.svnspot.com
這里允許創(chuàng)建兩個庫,剛好滿足我們私有索引庫和代碼庫的創(chuàng)建冗栗,

svn 遠程測試庫

2.接下來我們需要將遠程索引庫葛虐,添加到本地挡闰,這里為了滿足svn 操作我們需要安裝一個 cocoapods-repo-svn插件,參考 https://github.com/dustywusty/cocoapods-repo-svn

pod repo-svn add Name Url

這里本地索引庫名字盡量保持一致奢驯,url 就是遠程索引庫的地址

然后我們會在.cocoapod 看到這個文件夾

這里我遠程跟本地名字不一樣

然后終端可以查看一下相應(yīng)的索引庫

pod repo

索引庫本地以及遠程地址

這里就有我們的索引庫 SpecsRepo邮偎。

3.接下來我們需要將遠程源碼倉庫克隆到本地豁跑,采用Cornerstone 工具

兩種方式艇拍,直接添加遠程地址或者通過終端命令克隆下來然后導(dǎo)入层释。
具體操作不在贅述。

4.創(chuàng)建本地私有模板庫

pod lib create Name

私有模板庫

我們需要把 .git .gitignore .travis.yml 這三個文件刪掉,然后將這個庫拖入到 svn 本地倉庫的 trunk下面宵统。當(dāng)然這個里面包括你的組件庫文件。

5.編寫podsepc 文件

podsepc 文件編寫

這里我們需要將原地址改為svn 地址,可以進行本地驗證一下

pod lib lint

完成以后使用Cornerstone工具提交代碼至遠程涤伐。

6.遠程打標(biāo)簽tag

svn 終端命令行好像沒有直接打tag 的命令凝果,我們可以直接通過Cornerstone打tag,需要注意的是標(biāo)簽的tag和podsepc 文件中的版本一致器净。


遠程打標(biāo)簽可以在tag中查看版本

7.最后一步提交spec至私有索引庫

pod repo-svn push Name xx.podsepc

需要注意的是cd 到 本地trunk 文件夾目錄下沿量,才能包含xx.podsepc 文件朴则。

至此我們大功告成妖碉!我們可以通過終端 搜索一下我們的庫

pod search BCBaseLib

這里我已經(jīng)提交了兩個版本。

8.使用

Podfile文件編寫

platform :ios, '8.0'
target 'test' do
plugin 'cocoapods-repo-svn', :sources => [
        'http://10.211.55.3/svn/SpecRepo' # 遠程索引庫地址
    ] 
use_frameworks!
pod 'BCBaseLib'  # 本地 svn 私有庫
pod 'AFNetworking'    # 可直接 pod 公開三方庫
end

可能會出現(xiàn)以下問題

  1. pod install 報錯找不到組件

可以更新一下本地索引庫 pod repo-svn update --no-repo-update

2>路徑不對


我在測試中發(fā)現(xiàn)該地址不對,折騰了半天才發(fā)現(xiàn) 在podspec 文件中 s.source 路徑不對豪诲,通常產(chǎn)生這種問題大家可以先通過瀏覽器訪問該地址葵蒂,如果不通就說明該地址不對永高。

以上呢就是基于svn的所有主要的過程,一些細節(jié)問題大家可以自行嘗試命爬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末曹傀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子遇骑,更是在濱河造成了極大的恐慌卖毁,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件落萎,死亡現(xiàn)場離奇詭異,居然都是意外死亡炭剪,警方通過查閱死者的電腦和手機练链,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奴拦,“玉大人媒鼓,你說我怎么就攤上這事。” “怎么了绿鸣?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵疚沐,是天一觀的道長。 經(jīng)常有香客問我潮模,道長亮蛔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任擎厢,我火速辦了婚禮究流,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘动遭。我一直安慰自己芬探,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布厘惦。 她就那樣靜靜地躺著偷仿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宵蕉。 梳的紋絲不亂的頭發(fā)上酝静,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機與錄音国裳,去河邊找鬼形入。 笑死,一個胖子當(dāng)著我的面吹牛缝左,可吹牛的內(nèi)容都是我干的亿遂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼渺杉,長吁一口氣:“原來是場噩夢啊……” “哼蛇数!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起是越,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤耳舅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后倚评,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浦徊,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年天梧,在試婚紗的時候發(fā)現(xiàn)自己被綠了盔性。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡呢岗,死狀恐怖冕香,靈堂內(nèi)的尸體忽然破棺而出蛹尝,到底是詐尸還是另有隱情,我是刑警寧澤悉尾,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布突那,位于F島的核電站,受9級特大地震影響构眯,放射性物質(zhì)發(fā)生泄漏愕难。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一鸵赖、第九天 我趴在偏房一處隱蔽的房頂上張望务漩。 院中可真熱鬧,春花似錦它褪、人聲如沸饵骨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽居触。三九已至,卻和暖如春老赤,著一層夾襖步出監(jiān)牢的瞬間轮洋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工抬旺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弊予,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓开财,卻偏偏與公主長得像汉柒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子责鳍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

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

  • 最近在學(xué)習(xí)vue.js的時候發(fā)現(xiàn)碾褂,vue的組件化的思想對于編寫代碼是一個非常有用的事情。 首先為什么需要組件化历葛? ...
    拂曉的云閱讀 7,172評論 6 23
  • 本地私有庫不能滿足團隊開發(fā)的需要正塌,存在一下問題: 需要主動指明路徑,然后庫的本地位置就不能動了恤溶,否則Podfile...
    Lovell_閱讀 384評論 0 0
  • 最近想為公司搭建cocoapods私有庫框架乓诽,老早之前做過,踩過不少坑咒程,想不到又一次掉坑里问裕。果真是好記性不如爛筆頭...
    生光閱讀 1,545評論 0 4
  • 首先,也許有人覺得孵坚,開發(fā)使用遠程私有庫很麻煩粮宛,還不如直接寫好,拖到項目中直接使用來的方便卖宠∥¤荆可我想說的是,在一個小的...
    悠閑自在的蝸牛閱讀 2,184評論 0 10
  • 作者:如秋 柳梢青 祝姨婆百歲壽 和風(fēng)細轉(zhuǎn)扛伍, 合家同歡筷畦, 對飲蓬萊。 鶴語寄春刺洒, 蟠桃捧宴鳖宾, 玉燭調(diào)元。 福祉如山...
    秋之韻的空間閱讀 366評論 0 3