利用CocoPods建立遠程私有庫進行組件開發

背景

隨著項目的越做越大,項目里面很多東西都在別的項目里面能進行重復使用,這個時候我們可以使用CV的方式實現這種項目,但是這樣存在一個在一個地方修改了復用代碼,其他地方不能及時性的修改,針對這種情況我們就可以使用cocopod私有庫的方式把能夠復用的代碼進行抽離出來,封裝成對應的組件。

建立私有Repo

  • 通過pod repo查看現在pod的倉庫,一般情況我們本地只有一個master,然后我們需要手動的給repo添加自己的私有倉庫。
repo
  • 在git服務器上面初始化一個git倉庫。這里的git服務器可以是外網的,也可以是公司內部自建的git服務器,我這里使用的是coding.net上面建立的私有庫。


    git倉庫
  • 通過pod repo add 名字 git地址添加私有repo。
    添加私有庫
  • 到此私有repo已經添加完成。

創建自己待傳的組件

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


    存放代碼的文件夾
  • 通過pod spec create 組件名字 組件的git地址創建組件的spec文件,并根據實際需求修改spec文件里面的內容。對應參考資料
    Pod::Spec.new do |s|
      #指定平臺和版本
      s.platform     = :ios, '8.0'
      #名字
      s.name         = "CountDownButton"
      #對應版本
      s.version      = "0.0.2"
      #簡短描述
      s.summary      = "CountDownButton"
      #詳細描述
      s.description  = "一個倒計時的button,這是很長的描述"
      #代碼介紹的主頁
      s.homepage     = "https://coding.net/u/samhzx/p/MyRepo"
      #開源協議
      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文件驗證文件是否正確。如果出現錯誤根據錯誤提示進行相應的修改之后再次進行驗證。注意:spec文件里面的version的值一定要和git倉庫對應的tag一致。
    驗證spec文件
  • 初始化對應組件的git倉庫、上傳組件代碼到git倉庫、標記git倉庫的tag值。
    • 初始化本地組件git倉庫使用git init
    • 關聯遠程git倉庫使用git remote add origin git倉庫地址
    • 把本地代碼添加到git倉庫使用git add .
    • 提交本地代碼使用git commit -m '提交信息'
    • 提交到遠程倉庫第一次使用git push origin master;后面使用的時候git push
    • 給代碼打上tag使用git tag -a 版本號 -m '版本的描述信息'
    • 使用git push --tags把本地所有tag上傳到git服務器;也可以使用'git push origin 版本號'上傳指定的tag。
    • 使用git tag -d 版本號刪除本地對應的tag;接著使用git push origin :版本號同步本地刪除的tag到服務器。
  • 使用pod repo push 私有repo名稱 spec文件向自己的私有庫上傳對應的spec文件。
    上傳spec文件
  • 到此組件上傳到私有repo已經完成。

使用私有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進行安裝,正常情況能安裝上私有repo里面的對應組件,如果不行就使用pod repo update 私有repo名字更新一下對應的私有repo。
  • 私有組件的大概使用到此完成。

結語

項目中使用組件化不光是組件的管理,還涉及到組件的抽象,組件的分類,組件的組織等多方面的技術,需要了解的東西也較多,今天給大家帶來的只是組件管理的一個簡單介紹,后面有時間繼續給大家分享組件開發的其他東西,在此謝謝大家哦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容