iOS 遠程私有庫搭建及組件化教程

前言:

近期終于項目做完了批幌,可以停下手好好整理下自己的工作丐巫,一直認為 “總結(jié)” 這才是能力提升的關鍵點牍蜂,如下是對組件化的一些經(jīng)驗之談厂置,若有不對之處或者不足之處 非常希望下方評論指出陷虎,或者聯(lián)系郵箱 729020128@qq.com

接下來:共同探討下吧

1. 私有組件(本地)

$ pod lib create ZQTools (從GitHub上下載一個spec的模板到踏,ZQTools是我的工程名)
What platform do you want to use?? [ iOS / macOS ] (這個應該不用說了)
> iOS
What language do you want to use?? [ Swift / ObjC ] (這個應該不用說了)
> ObjC
Would you like to include a demo application with your library? [ Yes / No ] (Yes后會生成一個Demo Project,也可以No)
> Yes
Which testing frameworks will you use? [ Specta / Kiwi / None ] (這個最好不要選尚猿,他自帶的frameworks會引入一些不需要的庫窝稿,沒必要)
> None
Would you like to do view based testing? [ Yes / No ] (這個應該不用說了)
> No
What is your class prefix? (前綴名)
> ZQ

這樣會自動打開模板工程如下圖

image

然后就可以開始寫代碼了,例如我們寫了一個自定義的 ScrollView 就把自己的ScrollView放在 下圖中凿掂,替換 ReplaceMe.m 文件就好了

image

然后Podfile的一些設置如下伴榔,因為你的組件也是可能需要引入別的三方庫,如SDwebImage啊庄萎,那就需要在Podfile中引入踪少,podInstall后會在 Pods文件下看到遠程庫,我們自己現(xiàn)在制作的組件是在 Development Pods 文件夾下糠涛。如下圖是一些圖文注釋,這里我們使用的 pod 'ZQTools', :path => '../'是我們先使用的本地絕對路徑的地址來替代我們遠程私有庫地址援奢,如果這個走通了,那么證明我們的私有庫制作步驟沒問題了脱羡,接下來的只要把路徑改為遠程私有庫地址就ok 了

image

這樣就可以在本地使用了萝究,注意 指向組件的路徑要寫對免都,如果沒什么問題,本地的組件化搭建使用就完成了帆竹,文章最后會附上源碼

2. 私有庫(遠程)

現(xiàn)在要做的就是绕娘,將本地的私有庫搬到遠程就好了,這里要說明一下為什么要用 “碼云”栽连,理由只有一個:GitHub的私有庫要錢??(*@ο@*) ~

  • 三步走: a. 創(chuàng)建遠程私有庫倉庫 b. 創(chuàng)建遠程組件git項目 c. 本地同步遠程私有庫 修改.spec文件并push更新

a. 創(chuàng)建遠程私有倉庫:這個遠程倉庫主要是來儲存各個組件的spec文件险领,spec文件中存著每個組件的.git地址,這樣應該明白了秒紧,對绢陌,遠程索引庫
其實就是創(chuàng)建一個私有的空項目,用來存組件的下載地址熔恢。如有不清楚的同學可以參考我公開的這個遠程庫 遠程庫Demo地址

//重點來了脐湾,specgx文件夾后續(xù)還會出現(xiàn),現(xiàn)在是克隆下遠程剛剛新建的遠程私有倉庫叙淌,后續(xù)修改了還要push上去的喲
pod repo add specgx git@gitee.com:zzq_hd/Spec.git 

b. 創(chuàng)建遠程組件git項目:這里存放的就是你的組件了秤掌,如上問已經(jīng)有說明私有庫組件的本地實現(xiàn),現(xiàn)在就只要給它添加到遠程就OK了鹰霍。

//1. 創(chuàng)建一個空項目闻鉴,選擇上傳已有項目
//2. 關聯(lián)到已完成的本地私有組件工程
pod repo add specgx git@gitee.com:zzq_hd/Spec.git 
//3.  push (當然,需要add. commit 這個就不用說了)
push -u origin master 

c. 重點C鳌C系骸!修改(手動創(chuàng)建).podspec文件并且更新到遠程庫中督勺,有疑問為什么需要手動創(chuàng)建的不妨動手一試渠羞,你會發(fā)現(xiàn)會出些奇奇怪怪的問題,也沒自己創(chuàng)建來的快些玷氏,so...自己動手豐衣足食
如圖:

  1. 查看本地倉庫
$ open ~/.cocoapods/repos/  //對堵未,在repo這個文件夾下就是所有的本地倉庫了
$ pod repo

master
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/zzq/.cocoapods/repos/master

PrivateSpecs
- Type: git (master)
- URL:  git@gitee.com:zzq_hd/PrivateSpecs.git
- Path: /Users/zzq/.cocoapods/repos/PrivateSpecs

specgx
- Type: git (master)
- URL:  https://gitee.com/zzq_hd/Spec.git
- Path: /Users/zzq/.cocoapods/repos/specgx

新建(或者復制已有的組件文件夾)注意,文件名需要和遠程組件項目的文件名一直(在我這就是"ZZQTools")盏触,如圖:


image

然后就是動手修改下spec文件渗蟹,如圖標注:


image

最后就是將本地修改了的倉庫Push上去:
pod repo push specgx ZQTools.podspec//不行的話你就進文件夾,add commit后push就行了赞辩,目的達到方法不限

至此雌芽,所有的遠程庫搭建已經(jīng)完畢,就可以痛快的用了辨嗽,誒世落?不對,我們的遠程庫是否有效呢糟需,

這個時候屉佳,我們需要回到下上文谷朝,這就是為什么我讓先完成本地倉庫的好處了,當本地倉庫完成后武花,就可以保證我們的組件本地是可以使用的圆凰,現(xiàn)在只要保證遠程庫可以從本地引用修改為遠程 source引用pod,就沒問題了

  • 先查看本地庫是否OK体箕,
$ pod search ZZQTools
//如果接收到如下打印专钉,就證明ok了
-> ZZQTools (0.1.0)
   ZZQTools.
   pod 'ZZQTools', '~> 0.1.0'
   - Homepage: https://gitee.com/zzq_hd
   - Source:   https://gitee.com/zzq_hd/ZZQTools.git
   - Versions: 0.1.0 [PrivateSpecs repo]

接著就可以在實際使用的工程中使用了,使用項目工程Demo及組件Demo會在文章最后附上供各位老板參考
那么累铅,我們的遠程私有庫搭建就完成了跃须,敬請期待下一部:組件間通信--路由、模塊化拆分娃兽。如有哪里寫錯或者看官們有和疑問歡迎評論提出菇民,或mail:729020128@qq.com

附:
實際使用工程Demo及組件工程Demo(簡潔版)如覺得有所幫助,你的star會是我繼續(xù)分享的動力

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末换薄,一起剝皮案震驚了整個濱河市玉雾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轻要,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垦缅,死亡現(xiàn)場離奇詭異冲泥,居然都是意外死亡,警方通過查閱死者的電腦和手機壁涎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門凡恍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怔球,你說我怎么就攤上這事嚼酝。” “怎么了竟坛?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵闽巩,是天一觀的道長。 經(jīng)常有香客問我担汤,道長涎跨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任崭歧,我火速辦了婚禮隅很,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘率碾。我一直安慰自己叔营,他們只是感情好屋彪,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绒尊,像睡著了一般畜挥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垒酬,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天砰嘁,我揣著相機與錄音,去河邊找鬼勘究。 笑死矮湘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的口糕。 我是一名探鬼主播缅阳,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼景描!你這毒婦竟也來了十办?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤超棺,失蹤者是張志新(化名)和其女友劉穎向族,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棠绘,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡件相,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氧苍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夜矗。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖让虐,靈堂內(nèi)的尸體忽然破棺而出紊撕,到底是詐尸還是另有隱情,我是刑警寧澤赡突,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布苹享,位于F島的核電站总寒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜墅垮,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一齿梁、第九天 我趴在偏房一處隱蔽的房頂上張望痹扇。 院中可真熱鬧橡羞,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至到千,卻和暖如春昌渤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憔四。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工膀息, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人了赵。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓潜支,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柿汛。 傳聞我的和親對象是個殘疾皇子冗酿,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

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