iOS-本地私有庫和遠程私有庫.其實并不難

私有庫的介紹

為什么要學習私有庫?
  • 因為隨著項目代碼的體積不斷增加,為了更好的管理項目袄友,我們需要借助CocoaPods版本管理工具對原有項目進行拆分,然后創(chuàng)建對應的私有庫進行保存
什么是本地私有庫?什么是遠程私有庫呢?
  • 舉個例子: 本地私有庫就是你將錢(代碼),放在身上(放在當前電腦中某個文件夾), 而遠程私有庫呢,就是你將錢放在第三方平臺(支付寶,銀行)之類的
為什么是私有庫?
  • 私有的意思是只有相對應權(quán)限的人才能訪問,因為項目是公司的根本,正常人都不會選擇開源公司的項目,只會開源對應的框架
本地私有庫和遠程私有庫的區(qū)別是什么?
  • 本地私有庫:
    1,需要主動指明路徑,如果調(diào)整路徑,需要修改相關的配置
    2,版本升級不好維護
    3,不能團隊共享

  • 遠程私有庫可以將你的代碼傳到第三方托管平臺進行公司內(nèi)部開發(fā)人員共享,從而實現(xiàn)組件化開發(fā)模式

私有庫應該放在什么地方呢?
  • 本地私有庫放在本地(電腦上的某個文件夾),而遠程私有庫需要放在第三方托管平臺(如:github,碼云,碼市)

本地私有庫

創(chuàng)建一個倉庫(文件夾), 存儲在本地, 在本地的其他工程中直接使用

流程:
創(chuàng)建一個文件夾,把你需要拆分的代碼放到文件夾中(例如:基類,分類,工具類等)
然后通過終端把你的這個文件夾進行git進行管理

git init  /   git add. / git commit -m 'xx'/

之后創(chuàng)建個spec文件進行框架的描述

pod spec create xxx(你創(chuàng)建的文件夾的名字)

用Xcode打開spec文件進行編輯框架的描述

s.name = "框架的名字"
s.version = "版本號"
s.summary = "簡單描述" 
s.description "詳細貓叔"  #要比簡單描述長度大
s.homepage = "主頁"
s.license = "MIT" # 開放協(xié)議根據(jù)自己的需要填寫
s.autor = "作者"
s.platform = "支持平臺和版本"
s.soure = "托管git代碼倉庫地址"
s.souce_files = "soure中關鍵代碼的路徑"
s.requires_are = true # 支持ARC
進行完上面的步驟,你簡單的本地私有庫就已經(jīng)搭建好了
#簡單點   搭建倉庫的方式簡單點...

你現(xiàn)在可以進行主工程項目進行cocoapods管理

cd 進入你的主工程
pod init 初始化倉庫
然后對你的Podfile文件進行編寫
編寫podfile文件

:path => 后面跟的是你文件的本地路徑 ../ 是跳到上一級目錄
好,配置完成之后 直接pod install 安裝你本地的私有化庫吧
運行安裝完美


####以上的方案成功之后  下面講解本地私有庫的優(yōu)化
- ######因為之前的本地庫(你拆分的分類或者基類文件) 是用來導入到主工程的,所以在導入主工程之前我們需要先測試,保證當前這個庫的穩(wěn)定性

>創(chuàng)建一個LibTest文件夾 ,將你的本地庫拖進去,之后在LibTest文件中創(chuàng)建一個Example工程進行測試
測試很簡單 上面已經(jīng)提過,  將pod init 初始化  然后在podfile文件中配置本地庫  然后pod install 導入就OK了 



###本地私有庫的優(yōu)化 

進入LibTest文件夾里面
創(chuàng)建一個pods庫的模板庫
pod lib create xxx(你庫的名字例如:LionBase)

之后會提示你輸入對應的信息

![配置信息](http://upload-images.jianshu.io/upload_images/1846074-d936a206c70f4a2a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![需要替換的文件](http://upload-images.jianshu.io/upload_images/1846074-82b818961b5f810a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

之后直接 pod install 就OK啦

![文件夾目錄](http://upload-images.jianshu.io/upload_images/1846074-fc8ba81424c9afa8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###遠程私有庫
>#####現(xiàn)在這個是重點了  因為在開發(fā)中我們都是使用遠程私有庫
如果有不理解或者疑問,可以簡信私聊我


#####one 遠程私有庫的創(chuàng)建
首先如果需要在第三方的托管平臺創(chuàng)建一個私有的庫(可以在免費的 碼云或者碼市 )
- 創(chuàng)建私有索引庫

![索引庫](http://upload-images.jianshu.io/upload_images/1846074-185aa158dd880a25.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 添加repo索引庫

pod repo add LionFMSpecs xxxx(你剛創(chuàng)建的倉庫地址 )

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1846074-0ddc3ae787db6d3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 如果提示下面的信息 說明你電腦沒有配置公鑰和私鑰
![錯誤信息](http://upload-images.jianshu.io/upload_images/1846074-bee31a3d5c9eb2f3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 添加公鑰和私鑰 

終端輸入 ssh-keygen


 
![公鑰和私鑰](http://upload-images.jianshu.io/upload_images/1846074-2f02eeb9566a6e56.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- OK 完成上面的步驟之后
在碼市上創(chuàng)建一個基礎庫 (存放分類 工具類 這些)


![基礎庫](http://upload-images.jianshu.io/upload_images/1846074-64c05542fbc30953.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 將模板庫clone下來

![模板庫](http://upload-images.jianshu.io/upload_images/1846074-bb3d1e0fd94ff8aa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 之后進行配置  將你的庫拖進對應的文件夾中(LionFMBase)
再進入Example(測試工程) 進行導入基礎類 pod install

ok 看下圖

![配置信息](http://upload-images.jianshu.io/upload_images/1846074-ef3108b99a0ed093.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

s.name = "框架的名字"
s.version = "版本號"
s.summary = "簡單描述"
s.description "詳細貓叔" #要比簡單描述長度大
s.homepage = "主頁"
s.license = "MIT" # 開放協(xié)議根據(jù)自己的需要填寫
s.autor = "作者"
s.platform = "支持平臺和版本"
s.soure = "托管git代碼倉庫地址"
s.souce_files = "soure中關鍵代碼的路徑"
s.requires_are = true # 支持ARC


  配置完之后就可以提交到你遠程的私有庫了 第一次要進行關聯(lián)!!

pod stauts
pod add .
pod commit -m 'xx'
//添加關聯(lián)
git remote add origin 你那個Base庫的地址
//提交
git push origin master
如果第一次提交還會要求你驗證賬號和密碼

現(xiàn)在就開始綁定tag了
可以通過git tag 查看tag
git tag '0.1.0'
git psh --tags
提交完之后 可以用下面的命令行驗證
pod spec lint 驗證遠程
pod lib lint 驗證本地

開始提交
pod repo 查看索引庫
pod repo push LionFMSpecs LionFMBase.podspec

如果第一次配置  會比較麻煩  好了 只剩最后一步了

>打開你的主工程  然后來到podfile文件進行配置

![配置](http://upload-images.jianshu.io/upload_images/1846074-1673f36a66feb633.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

如果你不配置系統(tǒng)的索引庫 會找不到其他的庫 只能找到你自己創(chuàng)建的倉庫
最近一個命令   pod install 
Nice 完成了   



- ###本地私有庫的升級維護
>當拆分的庫需要進行修改或者添加新的內(nèi)容
修改或者添加完之后  在測試工程進行pod install 進行更新導入

之后進入你拆分的庫的podspec 將版本更改

pod status
pod add .
pod commit -m 'xxx'
pod push origin master

將代碼傳到遠程的私有庫 完成之后  更新tag 

git tag '0.2.0'
git push --tags

pod spec lint 驗證

更新自己的庫

pod repo push LionFMSpecs LionFMBase.podspec

可以進入主工程了  pod update  --no-repo-update進行更新

如果你的私有庫有引用外界的框架 只需要在 podspec  添加 s.dependency '你引用的庫'就OK了  詳情見下圖

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1846074-4010d9879f1ae74d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1846074-d92de1b117809624.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

`
####下面是流程圖  方便各位理解

![流程圖](http://upload-images.jianshu.io/upload_images/1846074-326facf3abf95435.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

`
###理解動手然后轉(zhuǎn)化為自己的知識 ,如果遇到不明白的歡迎提出意見
`
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市支鸡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌趁窃,老刑警劉巖牧挣,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異醒陆,居然都是意外死亡瀑构,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門刨摩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寺晌,“玉大人,你說我怎么就攤上這事澡刹∩胝鳎” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵罢浇,是天一觀的道長陆赋。 經(jīng)常有香客問我,道長己莺,這世上最難降的妖魔是什么奏甫? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮凌受,結(jié)果婚禮上阵子,老公的妹妹穿的比我還像新娘。我一直安慰自己胜蛉,他們只是感情好挠进,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布色乾。 她就那樣靜靜地躺著,像睡著了一般领突。 火紅的嫁衣襯著肌膚如雪暖璧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天君旦,我揣著相機與錄音澎办,去河邊找鬼。 笑死金砍,一個胖子當著我的面吹牛局蚀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恕稠,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼琅绅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鹅巍?” 一聲冷哼從身側(cè)響起千扶,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骆捧,沒想到半個月后澎羞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡凑懂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年煤痕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片接谨。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡摆碉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脓豪,到底是詐尸還是另有隱情巷帝,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布扫夜,位于F島的核電站楞泼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏笤闯。R本人自食惡果不足惜堕阔,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颗味。 院中可真熱鬧超陆,春花似錦、人聲如沸浦马。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谨娜,卻和暖如春航攒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背趴梢。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工漠畜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垢油。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓盆驹,卻偏偏與公主長得像圆丹,于是被迫代替她去往敵國和親滩愁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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

  • #本文供剛接觸代碼庫且瀏覽了其他文章依然摸不著頭腦的同事,借鑒;請代碼庫老司機指點# 最近3天接觸建立自己代碼庫,...
    zheNgHH閱讀 1,050評論 0 0
  • 私有庫介紹 為什么使用私有庫~~~~辫封?硝枉??倦微? ------- 組件化開發(fā)時最重要的一方面 因為越來越多公司妻味,開始了...
    Zax_Smile閱讀 1,384評論 5 3
  • 項目組件化、平臺化是技術公司的共同目標欣福,越來越多的技術公司推崇使用pod管理第三方庫以及私有組件责球,一方面使項目架構(gòu)...
    swu_luo閱讀 21,563評論 0 39
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)拓劝,斷路器雏逾,智...
    卡卡羅2017閱讀 134,626評論 18 139
  • 又是一個開學季 到了 來寧波玩了兩個月的 小候鳥 不得不"雁南歸" 雖戀戀不舍 卻也無可奈何 坐上南歸的火車 ……...
    羅啟洪閱讀 352評論 0 1