使用Cocoapods創(chuàng)建私有庫Pods

熱更新,熱修復(fù),RN益眉,組件化開發(fā)簡直是各個開發(fā)群的熱門話題旭从。作為一個開發(fā)小菜鳥,真是忙不過來瞧栗,搞這個,還是搞那個?一臉懵逼血柳。上個月蘋果爸爸的一封警告郵件,讓iOS開發(fā)界炸了鍋生兆,禁止動態(tài)下發(fā)代碼难捌,真是讓人猝不及防。項目做久了鸦难,一直迭代根吁,代碼越來越亂,迫切需要對代碼重構(gòu)合蔽,由此想到了最近大熱的組件化開發(fā)击敌,要做組件化開發(fā),首要管理好組件拴事,所以Cocoapods是iOS最佳管理工具沃斤,所以最近更深入的了解學(xué)了Cocoapods工具。

前言

今天這篇文章記錄自己使用CocoaPods工具創(chuàng)建公司自己的私有庫挤聘,其實網(wǎng)上有很多教程轰枝,這里只是記錄自己的使用過程,下面將盡量詳細(xì)記錄步驟组去,希望對大家有用鞍陨,覺得有用的小伙伴請高抬貴手點個贊哦!

創(chuàng)建公司自己的私有庫

步驟一 創(chuàng)建一個組件git倉庫

我們公司有自己的git服務(wù)器,當(dāng)然也可以使用GitHub這些公共的服務(wù)器诚撵,這里就不在多說缭裆。我在我們公司的git服務(wù)器創(chuàng)建了一個名叫XLZGComponent的倉庫。創(chuàng)建好了之后寿烟,復(fù)制git倉庫地址澈驼,第一步就算完成了。

步驟二 添加私有庫到CocoaPods的repo

這一步就是將我們剛剛創(chuàng)建的組件庫地址和CocoaPods關(guān)聯(lián)起來筛武,我們在pod install的時候缝其,就會從我們私有倉庫下載。下面是添加的命令:

   pod repo add REPO_NAME SOURCE_URL
   REPO_NAME:就是自定義的私有庫的名字
   SOURCE_URL:就是我們在git上創(chuàng)建的私有庫的git地址

我這里就是:

   pod repo add XLZGComponent http://*******/XLZGComponent.git

添加完成后徘六,可以查看CocoaPods的repo多出來一個XLZGComponent内边,查看repo的方法如下:

    ls ~/.cocoapods/repos

查看的結(jié)果就是:

    XLZGComponent master 

XLZGComponent這個就是我們新添加的我們自己有的,master就是原有的公共repo待锈。

步驟三 為將要組件化的項目制作*.podspec文件

這里作為測試漠其,我簡單的創(chuàng)建了一個testA的項目,項目的目錄如下:

mulu.png
項目名:testA
項目下面有一個文件夾:testA竿音,里面隨便創(chuàng)建了一個類和屎,這個類
就是我們即將作為組件加入私有庫的兩個文件。

接下來在git服務(wù)器上為該項目創(chuàng)建一個git倉庫春瞬,我的是倉庫地址是:

    http://*******/testA.git
    ps:testA和組件名字一致

接著就是要制作組件的podspec文件了柴信,在項目的更目錄下創(chuàng)建一個testA.podspec文件,接著編輯podspec文件宽气,文件內(nèi)容如下:

 Pod::Spec.new do |spec|
    #項目名稱
    spec.name         = 'testA'
    #版本號
    spec.version      = '0.1.0'
    #開源協(xié)議颠印,記得創(chuàng)建一個LICENSE文件,內(nèi)容可以百度
    spec.license      = {:type =>"MIT",:file => "LICENSE"}
    #對開源項目的描述
    spec.summary      = 'testA is a good component'
    #開源項目的首頁
    spec.homepage     = 'https://github.com/chunguiLiu/BGNetwork'
    #作者信息
    spec.author       = {'simple_Dev' => '12479697@qq.com'}
    #項目的源和版本號
    spec.source       = { :git => 'https://******/testA.git', :tag => '0.1.0' }
    #源文件抹竹,這個就是供第三方使用的源文件
    spec.source_files = "testA/testA/*"
    #適用于ios7及以上版本
    spec.platform     = :ios, '8.0'
    #使用的是ARC
    spec.requires_arc = true
    #依賴AFNetworking,如果有什么第三方依賴這樣添加
    #spec.dependency 'AFNetworking'
    end

編輯好了就可以保存止潮。關(guān)于podspec文件可以百度窃判,還有一些配置信息我這里不需要就沒有列出來。這里需要注意的是喇闸,也要在該目錄下創(chuàng)建一個LICENSE文件袄琳,文件的內(nèi)容請自行百度,這里不添加這個文件燃乍,后面push的時候會報警告唆樊,而導(dǎo)致push失敗。

步驟四 發(fā)版刻蟹,驗證podspec文件逗旁,push podspec文件

創(chuàng)建好了podspec文件,假設(shè)我們的組件也開發(fā)好了,編譯ok片效,接著就是把項目提交push到git服務(wù)器上去红伦,然后發(fā)個版,也就是打個tag淀衣。我的步驟如下:

   //添加所有新加的文件
    $ git add .
   //提交新添加的文件到本地git
    $ git commit -m 'add file'
   //將本地更新push到遠(yuǎn)程git服務(wù)器
    $ git push origin master
   //給本地倉庫打個tag
    $ git tag -m 'add tag' '0.1.0'
   //將tag推送到遠(yuǎn)程服務(wù)器
    $ git push --tags

接著就是驗證我們剛才的podspec文件昙读,驗證指令是:

 $ pod lib lint

如果沒有錯誤和警告我們就可以推送到服務(wù)器了,推送使用的命令如下:

$ pod repo push REPO_NAME SPEC_NAME.podspec
它也會先驗證膨桥,然后再推送蛮浑。我這里推送testA命令是:

$ pod repo push XLZGComponent testA.podspec
如果沒有錯誤,但是有警告只嚣,我們就將警告解決沮稚,也可以加--allow-warnings來提交

$ pod repo push XLZGComponent testA.podspec --allow-warnings

4.最后就可以在pod search 搜索testA了,到這里我們私有庫也就成功。

$ pod search testA

pod 'testA', '~> 0.1.0'
- Homepage: http://*******/testA
- Source:   http:**********/testA.git
- Versions: 0.1.1, 0.1.0 [XLZGComponent repo]
使用私有庫

使用方式就是在Podfile中介牙,添加我們自己私有源地址壮虫,然后pod我們的組件名字就可以了,例如:

#官方Cocoapods的源
source 'https://github.com/CocoaPods/Specs.git'
#本地私有源
source 'https://github.com/liuchungui/first.git'
platform :ios, '8.0'

target ‘test‘ do
  pod 'AFNetworking'
  pod 'testA'
end

最后pod install就可以啦环础。

寫在最后

最后提醒大家囚似,記得添加.gitignore文件,過濾提交的git的內(nèi)容线得,不然把一些不必要的文件都提交到服務(wù)器上饶唤。認(rèn)真想起來其實建立私有庫很簡單,就是那么幾步贯钩。創(chuàng)建一些文件募狂,配置一下就可以了。后面一篇角雷,我會介紹一下使用一些腳本祸穷,來簡化過程,減少一些編輯勺三,設(shè)置過程雷滚,有些必要過程還是必須的。如果覺得此文中有哪些不明白的地方吗坚,可以留言祈远,或者發(fā)私信,共同探討商源。如果覺得文中有不對的地方也請大家慷慨指出车份,以便我改正。最后謝謝大家的閱讀牡彻,喜歡的話就請點個贊吧扫沼,謝謝。

分享是一件快樂的事情!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末充甚,一起剝皮案震驚了整個濱河市以政,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伴找,老刑警劉巖盈蛮,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異技矮,居然都是意外死亡抖誉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門衰倦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袒炉,“玉大人,你說我怎么就攤上這事樊零∥掖牛” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵驻襟,是天一觀的道長夺艰。 經(jīng)常有香客問我,道長沉衣,這世上最難降的妖魔是什么郁副? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮豌习,結(jié)果婚禮上存谎,老公的妹妹穿的比我還像新娘。我一直安慰自己肥隆,他們只是感情好既荚,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著栋艳,像睡著了一般固以。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘱巾,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機(jī)與錄音诫钓,去河邊找鬼旬昭。 笑死,一個胖子當(dāng)著我的面吹牛菌湃,可吹牛的內(nèi)容都是我干的问拘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骤坐!你這毒婦竟也來了绪杏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤纽绍,失蹤者是張志新(化名)和其女友劉穎蕾久,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拌夏,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡僧著,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了障簿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盹愚。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖站故,靈堂內(nèi)的尸體忽然破棺而出皆怕,到底是詐尸還是另有隱情,我是刑警寧澤西篓,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布愈腾,位于F島的核電站,受9級特大地震影響污淋,放射性物質(zhì)發(fā)生泄漏顶滩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一寸爆、第九天 我趴在偏房一處隱蔽的房頂上張望礁鲁。 院中可真熱鬧,春花似錦赁豆、人聲如沸仅醇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽析二。三九已至,卻和暖如春节预,著一層夾襖步出監(jiān)牢的瞬間叶摄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工安拟, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留蛤吓,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓糠赦,卻偏偏與公主長得像会傲,于是被迫代替她去往敵國和親锅棕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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