通過cocoapod創(chuàng)建組件

通過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):

創(chuàng)建遠(yuǎn)程索引庫

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)]

遠(yuǎn)程組件代碼庫

4、創(chuàng)建ZZFShareKit組件本地代碼庫

首先通過pod lib create命令從cocoapods的模版中初始化自己的本地組件代碼庫。

pod lib create 《組件名》
pod lib create ZZFShareKit

執(zhí)行完上面代碼后,會(huì)出現(xiàn)下面的提示信息


創(chuàng)建本地組件代碼庫

自己根據(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>

引入后項(xiàng)目結(jié)構(gòu)

然后編譯組件看是否能夠通過潮剪,并且在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

參考:http://www.reibang.com/p/760d6cd46719

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末昔搂,一起剝皮案震驚了整個(gè)濱河市议慰,隨后出現(xiàn)的幾起案子炉菲,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件目木,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵猾浦,是天一觀的道長绳慎。 經(jīng)常有香客問我珊楼,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任轻专,我火速辦了婚禮宗收,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘菲嘴。我一直安慰自己城豁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般苛预。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔬捷,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音脓钾,去河邊找鬼飞崖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛恬汁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氓癌,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了爷耀?” 一聲冷哼從身側(cè)響起歹叮,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤窄做,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡句旱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年孩等,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迎献。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞎访,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吁恍,到底是詐尸還是另有隱情扒秸,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布冀瓦,位于F島的核電站伴奥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翼闽。R本人自食惡果不足惜拾徙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望感局。 院中可真熱鬧尼啡,春花似錦、人聲如沸询微。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撑毛。三九已至书聚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間藻雌,已是汗流浹背雌续。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胯杭,地道東北人驯杜。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像做个,于是被迫代替她去往敵國和親鸽心。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腔呜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

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