背景
隨著項目的越做越大,項目里面很多東西都在別的項目里面能進行重復使用,這個時候我們可以使用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到服務器。
- 初始化本地組件git倉庫使用
- 使用
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。 - 私有組件的大概使用到此完成。
結語
項目中使用組件化不光是組件的管理,還涉及到組件的抽象,組件的分類,組件的組織等多方面的技術,需要了解的東西也較多,今天給大家帶來的只是組件管理的一個簡單介紹,后面有時間繼續給大家分享組件開發的其他東西,在此謝謝大家哦。