iOS組件化開發(fā)之私有庫創(chuàng)建(上)

前言

組件化中把模塊拆分之后把模塊的代碼存放在私有庫中,私有庫中存放的其實是模塊也就是我們拆分出來的組件的代碼索引,所以私有庫也就是索引庫儡首。它里面存放的是各個組件的版本(tag)的索引文件podspec。

創(chuàng)建私有庫我們分三步:

  • 第一步拆分組件推送到代碼庫偏友,為組件打tag蔬胯;
  • 第二步創(chuàng)建該組件的podspec文件推送到私有庫;
  • 第三部在本地設置本地庫關聯(lián)遠程私有庫位他,配置項目的podfile引用組件氛濒。

私有庫分為兩種产场,本文先實現(xiàn)第一種:

  • 第一種pod下來的組件代碼完全公開,就是在工程里面是可以看到組件代碼實現(xiàn)舞竿。
  • 第二種pod下來的組件代碼只能看見頭文件京景,內(nèi)部實現(xiàn)不能查看也就是我們說的靜態(tài)庫方式。

準備

創(chuàng)建私有索引庫推送

創(chuàng)建自己的私有索引庫骗奖,創(chuàng)建過程和項目是一樣的确徙,不懂可以看系列前面的文章

image.png

添加私有索引庫到本地

pod repo add MyRepo git@github.com:GuoMs/mySpecs.git

源代碼及tag推送

創(chuàng)建一個模塊測試代碼,組件化代碼最好的情況是創(chuàng)建一個靜態(tài)庫的target工程执桌。今天剛開始講私有庫鄙皇,我們只使用一個控制器輸出一句代碼代替,后續(xù)的文章將帶大家慢慢深入仰挣。

提交代碼伴逸,并打一個1.0.0的tag


image.png

podsepc推送

1、創(chuàng)建podspec膘壶,怎么創(chuàng)建請查看前面的文章


#最簡單是示例
Pod::Spec.new do |s|

  s.name         = "testDemo"
  #我們剛打tag的版本是1.0.0 所以這也是
  s.version      = "1.0.0"
  s.summary      = "測試."


  s.description  = <<-DESC
                   DESC
  #項目首頁顯示用不重要
  s.homepage     = "https://github.com/GuoMs/testDemo"
 
  s.license      = "MIT"
  
  s.author             = { "dd" => "gz3024@aliyun.com" }

  s.platform     = :ios, "8.0"
  #這里是源代碼错蝴,也就是組件代碼的git地址一定要寫對
  s.source       = { :git => "git@github.com:GuoMs/testDemo.git", :tag => "#{s.version}" }
  #組件代碼的路徑要寫對不然會找不到
  s.source_files  = "testDemo", "testDemo/**/*.{h,m}"


end

2、驗證podspec是否正確颓芭,如果有出現(xiàn)error的話需要修改

#驗證是否正常顷锰,
pod spec lint --no-clean
image.png

改到最后只有waring


image.png

通過上面的修改,你可能需要重新提交并重新打tag亡问,我這里重新提交代碼并打tag1.0.1,或者刪除tag重新提交官紫。

#修改提交完之后執(zhí)行
pod lib lint --private

提示以下信息代表成功了


image.png

3、推送podspec到私有索引庫

pod repo push MyRepo testDemo.podspec --verbose --allow-warnings --use-libraries

以下代表成功了

image.png
#現(xiàn)在可以搜索我們的組件啦
pod search testDemo
#輸出我們剛創(chuàng)建的組件描述
-> testDemo (1.0.1)
   測試組件.
   pod 'testDemo', '~> 1.0.1'
   - Homepage: https://github.com/GuoMs/testDemo
   - Source:   git@github.com:GuoMs/testDemo.git
   - Versions: 1.0.1 [MyRepo repo]

在遠端的私有庫中我們也可以看到1.0.1的索引文件


image.png

實際項目使用

1玛界、設置本地的podfile

#設置私有庫源
source 'git@github.com:GuoMs/mySpecs.git'

platform :ios, '8.0'

target 'repoDemo' do
    #組件名稱
    pod 'testDemo'

end

2.pod 更新

image.png

3万矾、完成之后我們可以看到組件的代碼


image.png

4悼吱、最后調用組件代碼

#import "ViewController.h"
#import <testDemo/testDemo.h>

@interface ViewController ()

@end

@implementation ViewController


- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    testDemo *test = [[testDemo alloc]init];
    [self.navigationController pushViewController:test animated:YES];
}


@end

輸出log


image.png

調試模式

修改podfile

#設置私有庫源
source 'git@github.com:GuoMs/mySpecs.git'

platform :ios, '8.0'

target 'repoDemo' do
    #設置調試模式慎框,后面的路徑指的是testDemo.podsepc的所在路徑
    pod 'testDemo', :path=> '/Users/mac/Desktop/testtest'

end

pod更新之后在工程的Development Pods文件夾下看到代碼就可以直接修改代碼了,改文件夾代碼所有調試模式的第三方庫或者組件代碼

image.png

后記

上面只是寫了最簡單的發(fā)布步驟后添,其實真正開發(fā)的時候很有很多的配置信息需要寫在podsepc里面笨枯,代碼也必須公開所有人可見,下篇我們將把代碼打包成靜態(tài)庫發(fā)布到私有索引庫遇西,敬請期待馅精。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市粱檀,隨后出現(xiàn)的幾起案子洲敢,更是在濱河造成了極大的恐慌,老刑警劉巖茄蚯,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件压彭,死亡現(xiàn)場離奇詭異睦优,居然都是意外死亡,警方通過查閱死者的電腦和手機壮不,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門汗盘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人询一,你說我怎么就攤上這事隐孽。” “怎么了健蕊?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵菱阵,是天一觀的道長。 經(jīng)常有香客問我绊诲,道長送粱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任掂之,我火速辦了婚禮抗俄,結果婚禮上,老公的妹妹穿的比我還像新娘世舰。我一直安慰自己动雹,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布跟压。 她就那樣靜靜地躺著胰蝠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪震蒋。 梳的紋絲不亂的頭發(fā)上茸塞,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音查剖,去河邊找鬼钾虐。 笑死,一個胖子當著我的面吹牛笋庄,可吹牛的內(nèi)容都是我干的效扫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼直砂,長吁一口氣:“原來是場噩夢啊……” “哼菌仁!你這毒婦竟也來了?” 一聲冷哼從身側響起静暂,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤济丘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洽蛀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摹迷,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡弯院,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泪掀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片听绳。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖异赫,靈堂內(nèi)的尸體忽然破棺而出椅挣,到底是詐尸還是另有隱情,我是刑警寧澤塔拳,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布鼠证,位于F島的核電站,受9級特大地震影響靠抑,放射性物質發(fā)生泄漏量九。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一颂碧、第九天 我趴在偏房一處隱蔽的房頂上張望荠列。 院中可真熱鬧,春花似錦载城、人聲如沸肌似。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽川队。三九已至,卻和暖如春睬澡,著一層夾襖步出監(jiān)牢的瞬間固额,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工煞聪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斗躏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓米绕,卻偏偏與公主長得像瑟捣,于是被迫代替她去往敵國和親馋艺。 傳聞我的和親對象是個殘疾皇子栅干,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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