利用CocoPods建立遠(yuǎn)程私有庫進(jìn)行組件開發(fā)

背景

隨著項(xiàng)目的越做越大,項(xiàng)目里面很多東西都在別的項(xiàng)目里面能進(jìn)行重復(fù)使用,這個(gè)時(shí)候我們可以使用CV的方式實(shí)現(xiàn)這種項(xiàng)目善玫,但是這樣存在一個(gè)在一個(gè)地方修改了復(fù)用代碼歌殃,其他地方不能及時(shí)性的修改衡蚂,針對這種情況我們就可以使用cocopod私有庫的方式把能夠復(fù)用的代碼進(jìn)行抽離出來,封裝成對應(yīng)的組件仪媒。

建立私有Repo

  • 通過pod repo查看現(xiàn)在pod的倉庫,一般情況我們本地只有一個(gè)master姜钳,然后我們需要手動的給repo添加自己的私有倉庫。
repo
  • 在git服務(wù)器上面初始化一個(gè)git倉庫领迈。這里的git服務(wù)器可以是外網(wǎng)的彻磁,也可以是公司內(nèi)部自建的git服務(wù)器,我這里使用的是coding.net上面建立的私有庫。


    git倉庫
  • 通過pod repo add 名字 git地址添加私有repo狸捅。
    添加私有庫
  • 到此私有repo已經(jīng)添加完成衷蜓。

創(chuàng)建自己待傳的組件

  • 把自己抽離出來的代碼存放到指定文件夾里面,并建立對應(yīng)代碼的測試demo尘喝。


    存放代碼的文件夾
  • 通過pod spec create 組件名字 組件的git地址創(chuàng)建組件的spec文件磁浇,并根據(jù)實(shí)際需求修改spec文件里面的內(nèi)容。對應(yīng)參考資料
    Pod::Spec.new do |s|
      #指定平臺和版本
      s.platform     = :ios, '8.0'
      #名字
      s.name         = "CountDownButton"
      #對應(yīng)版本
      s.version      = "0.0.2"
      #簡短描述
      s.summary      = "CountDownButton"
      #詳細(xì)描述
      s.description  = "一個(gè)倒計(jì)時(shí)的button,這是很長的描述"
      #代碼介紹的主頁
      s.homepage     = "https://coding.net/u/samhzx/p/MyRepo"
      #開源協(xié)議
      s.license      = 'Code is MIT, then custom font licenses.'
      #作者
      s.author       = { "xxxxx" => "xxxx@qq.com" }
      #代碼的git倉庫
      s.source       = { :git => "https://git.coding.net/samhzx/CountDownButton.git", :tag => "#{s.version}" }
      #代碼引用的文件
      s.source_files  = "CountDownButton/**/*.{h,m}"
      s.requires_arc = true
    end
    
  • 修改完spec文件之后使用pod spec lint spec文件驗(yàn)證文件是否正確朽褪。如果出現(xiàn)錯誤根據(jù)錯誤提示進(jìn)行相應(yīng)的修改之后再次進(jìn)行驗(yàn)證置吓。注意:spec文件里面的version的值一定要和git倉庫對應(yīng)的tag一致。
    驗(yàn)證spec文件
  • 初始化對應(yīng)組件的git倉庫缔赠、上傳組件代碼到git倉庫衍锚、標(biāo)記git倉庫的tag值。
    • 初始化本地組件git倉庫使用git init橡淑。
    • 關(guān)聯(lián)遠(yuǎn)程git倉庫使用git remote add origin git倉庫地址构拳。
    • 把本地代碼添加到git倉庫使用git add .
    • 提交本地代碼使用git commit -m '提交信息'
    • 提交到遠(yuǎn)程倉庫第一次使用git push origin master置森;后面使用的時(shí)候git push斗埂。
    • 給代碼打上tag使用git tag -a 版本號 -m '版本的描述信息'
    • 使用git push --tags把本地所有tag上傳到git服務(wù)器;也可以使用'git push origin 版本號'上傳指定的tag凫海。
    • 使用git tag -d 版本號刪除本地對應(yīng)的tag呛凶;接著使用git push origin :版本號同步本地刪除的tag到服務(wù)器。
  • 使用pod repo push 私有repo名稱 spec文件向自己的私有庫上傳對應(yīng)的spec文件行贪。
    上傳spec文件
  • 到此組件上傳到私有repo已經(jīng)完成漾稀。

使用私有repo

  • demo的Podfile文件:
    source 'https://github.com/CocoaPods/Specs.git'
    #私有Spec Repo
    #source 'https://git.coding.net/samhzx/MyRepo.git'
    platform :ios, '9.0'

    target 'CountDownButtonDemo' do
      use_frameworks!
      #pod 'CountDownButton', :podspec => '../CountDownButton.podspec' 
      pod 'CountDownButton', :path => '../' 
    end
  • 正常使用的Podfile文件:
    source 'https://github.com/CocoaPods/Specs.git'
    #私有Spec Repo
    source 'https://git.coding.net/samhzx/MyRepo.git'
    platform :ios, '9.0'
    target 'CountDownButtonDemo' do
      use_frameworks!
      pod 'CountDownButton' 

    end
  • 使用pod install進(jìn)行安裝,正常情況能安裝上私有repo里面的對應(yīng)組件建瘫,如果不行就使用pod repo update 私有repo名字更新一下對應(yīng)的私有repo崭捍。
  • 私有組件的大概使用到此完成。

結(jié)語

項(xiàng)目中使用組件化不光是組件的管理啰脚,還涉及到組件的抽象殷蛇,組件的分類,組件的組織等多方面的技術(shù)橄浓,需要了解的東西也較多粒梦,今天給大家?guī)淼闹皇墙M件管理的一個(gè)簡單介紹,后面有時(shí)間繼續(xù)給大家分享組件開發(fā)的其他東西荸实,在此謝謝大家哦匀们。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市准给,隨后出現(xiàn)的幾起案子泄朴,更是在濱河造成了極大的恐慌,老刑警劉巖圆存,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叼旋,死亡現(xiàn)場離奇詭異仇哆,居然都是意外死亡沦辙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門讹剔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來油讯,“玉大人,你說我怎么就攤上這事延欠∧岸遥” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵由捎,是天一觀的道長兔综。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么软驰? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任涧窒,我火速辦了婚禮,結(jié)果婚禮上锭亏,老公的妹妹穿的比我還像新娘纠吴。我一直安慰自己,他們只是感情好慧瘤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布戴已。 她就那樣靜靜地躺著,像睡著了一般锅减。 火紅的嫁衣襯著肌膚如雪糖儡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天怔匣,我揣著相機(jī)與錄音休玩,去河邊找鬼。 笑死劫狠,一個(gè)胖子當(dāng)著我的面吹牛拴疤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播独泞,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼呐矾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了懦砂?” 一聲冷哼從身側(cè)響起蜒犯,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荞膘,沒想到半個(gè)月后罚随,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羽资,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年淘菩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屠升。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡潮改,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出腹暖,到底是詐尸還是另有隱情汇在,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布脏答,位于F島的核電站糕殉,受9級特大地震影響亩鬼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阿蝶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一辛孵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赡磅,春花似錦魄缚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咆瘟,卻和暖如春嚼隘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袒餐。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工飞蛹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人灸眼。 一個(gè)月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓卧檐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親焰宣。 傳聞我的和親對象是個(gè)殘疾皇子霉囚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

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