通過cocoapod創(chuàng)建組件
很多時(shí)候我們會(huì)把項(xiàng)目中通用的功能模塊組件化,通過Cocoapods進(jìn)行管理罚勾。本文將一步一步的記錄自己創(chuàng)建組件的過程荧库。
創(chuàng)建組件
1分衫、創(chuàng)建遠(yuǎn)程索引庫
我們沒創(chuàng)建一個(gè)組建就會(huì)帶有一個(gè)后綴為.podspec的索引文件蚪战。我們可以創(chuàng)建一個(gè)遠(yuǎn)程索引庫來保存他們邀桑,這樣其他人可以通過它來進(jìn)行使用你的組件壁畸。按照下圖創(chuàng)建遠(yuǎn)程索引庫(ZZFSpecs)并拿到遠(yuǎn)程索引庫的地址(https://github.com/ZZFComponent/ZZFSpecs.git):
2太抓、創(chuàng)建本地倉庫
本地索引倉庫相關(guān)知識(shí)
創(chuàng)建之前走敌,我們想簡單介紹一下本地索引庫相關(guān)東西掉丽,如果以前沒有創(chuàng)建過本地索引倉庫异雁,本地索引倉庫應(yīng)該只有默認(rèn)的master捶障,所有的本地索引倉庫都會(huì)存放在下面目錄下,你可以去這里查看:
~/.cocoapods/repos
當(dāng)然你也可以打開命令行輸入一下命令查看:
pod repo
也可以通過一下命令刪除本地索引庫
pod repo remove 《本地索引庫名稱
//舉例
pod repo remove ZZFSpecs
創(chuàng)建本地索引倉庫
好了纲刀,說了那么多残邀,下面進(jìn)入整體,創(chuàng)建索引庫,創(chuàng)建本地索引庫也是很簡單的芥挣,只需要下面一行命令搞定:
pod repo add <本地索引庫的名字> <遠(yuǎn)程索引庫的地址>
//舉例
pod repo add ZZFSpecs https://github.com/ZZFComponent/ZZFSpecs.git
執(zhí)行完命令之后可以通過上面介紹的本地索引倉庫查看命令查看本地索引倉庫是否創(chuàng)建成功驱闷。
3、創(chuàng)建遠(yuǎn)程組件代碼庫(ZZFShareKit)
遠(yuǎn)程組件代碼庫的創(chuàng)建方式基本上和創(chuàng)建遠(yuǎn)程索引庫一樣空免,創(chuàng)建后獲取到ZZFShareKit組件代碼庫的地址(https://github.com/ZZFComponent/ZZFShareKit.git)空另,該庫存儲(chǔ)ZZFShareKit組件的代碼扼菠。
[圖片上傳失敗...(image-1610b-1520489978409)]
4、創(chuàng)建ZZFShareKit組件本地代碼庫
首先通過pod lib create命令從cocoapods的模版中初始化自己的本地組件代碼庫。
pod lib create 《組件名》
pod lib create ZZFShareKit
執(zhí)行完上面代碼后,會(huì)出現(xiàn)下面的提示信息
自己根據(jù)自己的需求做出選擇泼各,完成后cocoapods會(huì)自動(dòng)為我們創(chuàng)建本地組件代碼庫及塘,并且?guī)臀覀兇蜷_項(xiàng)目,接下來就需要把我們需要組件話的代碼加入進(jìn)來。如下圖所示將自己的代碼放入到組件ZZFShareKit/Classes/文件夾下,如下圖
進(jìn)入到代碼庫下面的Example目錄下面執(zhí)行
pod install
,把剛才拖入到classes、文件的文件pod進(jìn)來掂铐。
如果組件庫里需要圖片資源,則需要首先進(jìn)入組件的索引文件ZZFShareKit.podspec柿菩,將圖片的引入打開替久,默認(rèn)是不打開的后众。默認(rèn)的代碼如下:
# s.resource_bundles = {
# 'ZZFShareKit' => ['ZZFShareKit/Assets/*.png']
# }
將前面的注釋去掉
s.resource_bundles = {
'ZZFShareKit' => ['ZZFShareKit/Assets/*.png']
}
接下來將自己的圖片放入到ZZFShareKit/Assets文件夾下矩距。
[圖片上傳失敗...(image-87d053-1520489978409)]
引入后同樣進(jìn)入到Example目錄下面執(zhí)行pod install
然后進(jìn)入到xcode,在‘Pods’ Project下面Development Pods/ZZFShareKit文件夾下就可以看到自己引入的代碼和圖片了登夫,如下圖:
<div align=center>
然后編譯組件看是否能夠通過潮剪,并且在demo項(xiàng)目中可以寫一些代碼看看組件能不能正常使用狮斗。
接下來就需要修改索引文件ZZFShareKit.podspec了,首先固定要修改的有
- 版本號(hào)(version)
- 組件的見到描述(summary)和詳細(xì)說明(description)
- 修改主頁(homepage)和遠(yuǎn)程代碼庫地址(source)
- 添加組件中的依賴庫(比方說你的組件中需要用到AFNetworking)
其他的諸如:development_target,frameworks等根據(jù)自己情況修改。
更改成功后編譯運(yùn)行睹逃,如果沒問題就可以把組件提交到遠(yuǎn)程并打tag,
**打tag的時(shí)候要注意,tag要和上面更改ZZFShareKit.podspec時(shí)的tag一致**
**打tag的時(shí)候要注意,tag要和上面更改ZZFShareKit.podspec時(shí)的tag一致**
接下來就是把組件代碼庫提交到遠(yuǎn)程
- git add .
- git commit -m "組件初始化"
- git remote add origin 遠(yuǎn)程代碼倉庫地址
- git push origin master
- git tag 版本號(hào) (注:這里的版本號(hào)必須和podspec里寫的版本號(hào)一致)
- git push --tags
5、將組件的索引文件提交到遠(yuǎn)程索引庫
首先我們要驗(yàn)證索引文件的格式是否正確输虱,是否符合cocoapods的要求蚕钦,驗(yàn)證命令:
pod spec lint 《組件索引文件》 --verbose --allow-warnings
//舉例
pod spec lint 《ZZFShareKit.podspec》 --verbose --allow-warnings //注:--allow-warnings是為了讓組件編譯過程中有warning照樣能夠通過。
驗(yàn)證通過后我們就可以將我們組件的索引文件上傳到遠(yuǎn)程索引庫里,命令:
pod repo push <本地索引庫> <索引文件名> --verbose --allow-warnings
//舉例
pod repo push ZZFSpecs ZZFShareKit.podspec --verbose --allow-warnings
這樣就把索引文件上傳到遠(yuǎn)程索引庫和本地索引庫,自己可以去這兩個(gè)地方看下是否能夠找到。
以上就是組件化的全部過程嚷量,接下來就是如何使用自己創(chuàng)建的組件了宣渗。
組件使用
使用自己的組件
創(chuàng)建一個(gè)應(yīng)用ZZFShareKitDemo,在項(xiàng)目文件夾創(chuàng)建Podfile,并且輸入一下代碼
source 'https://github.com/ZZFComponent/ZZFSpecs.git'
use_frameworks!
target 'ZZFShareKitDemo' do
pod 'ZZFShareKit'
end
注:
- source:指定索引文件地址,如果不指定稽莉,則自動(dòng)引用cocoapods的索引文件庫:https://github.com/CocoaPods/Specs.git混狠,因?yàn)槲覀兊慕M件還沒有提交到cocoapods,所以索引庫必須指定予弧。下面會(huì)講解怎么將自己的組件上傳到cocoapods
- use_frameworks!:這個(gè)字段是說組件會(huì)被編譯成framework使用蚓庭,否則將會(huì)被編譯成library(.a)使用
將自己的組件上傳到cocoapods
想把自己的組件上傳到cocoapods港柜,首先需要有一個(gè)cocoapods賬號(hào),通過一下命令注冊(cè):
pod trunk register 《郵箱地址》 《用戶名》 --description='描述信息'
然后根據(jù)命令行輸出可以看出自己是否注冊(cè)成功释树,如果成功的話會(huì)提示讓你去郵箱里確認(rèn)進(jìn)行激活桩盲。
注冊(cè)成功后,可以通過一下命令查看自己的信息:
pod trunk me
上傳到cocoapods之前還是先需要驗(yàn)證索引文件的是否符合要求量承,和上面將索引文件提交到遠(yuǎn)程庫一樣忧风,使用命令pod spec lint 《ZZFShareKit.podspec》 --verbose --allow-warnings
驗(yàn)證通過之后,就可以真正的將索引文件提交到cocoapods使用命令
pod trunk push 《索引文件路徑》 --allow-warnings
//舉例
pod trunk push ZZFShareKit.podspec --allow-warnings
上傳到cocoapods中的組件可以通過以下命令刪除
pod trunk delete 《組件名》《組件版本號(hào)》
上傳到cocoapods后规肴,我們使用組件的時(shí)候就不需要在Podfile中通過source指定索引文件來使用組件了兑牡,只需要簡單的pod 《組件名》就可以了苞也,如pod ZZFShareKit