私有庫的介紹
為什么要學習私有庫?
- 因為隨著項目代碼的體積不斷增加,為了更好的管理項目袄友,我們需要借助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文件進行編寫
: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)化為自己的知識 ,如果遇到不明白的歡迎提出意見
`