iOS組件化開發-CocoaPods簡介

CocoaPods簡介

任何一門開發語言到達必定階段就會出現第三方的類庫管理工具,好比Java的Maven、WEB的Webpack等。在iOS中類庫的管理工具-CocoaPods。json

利用CocoaPods管理第三方庫能夠自動化幫咱們完成各類庫的依賴和配置,包括配置編譯階段、連接器選項、甚至是ARC環境下的-fno-objc-arc配置等。緩存

CocoaPods的安裝和使用網上文章不少,這裏不在介紹,下面主要介紹CocoaPods使用執行命令的原理。bash

CocoaPods流程

CocoaPods總體的原理流程圖,下面圍繞個流程進行介紹。工具

1.安裝好CocoaPods,會將官方的CocoaPods/Specs克隆到~/.cocoapods下,這個倉庫存放這全部支持CocoaPods的第三方庫的.podspec。它主要做者對庫的描述信息,好比庫的版本、做者、Source、庫的依賴。組件化

2.第一次執行pod search搜索指定第三方庫時,爲了提升效率,CocoaPods會對克隆下拉的全部庫的podspec生成個緩存索引文件search_index.json。3d

3.執行pod intall / pod update安裝指定第三方庫,會先去本地search_index.json查找庫的描述信息。其實核心的信息就是庫的代碼遠程倉庫地址、version版本、源文件、依賴信息,而後將第三方庫集成到咱們的項目中去。code

CocoaPods經常使用命令

CocoaPods的經過不少命令去執行,下面對一些命令背後作的事情作些說明。blog

pod install和pod update

pod install和pod update二者均可以用做集成操做,其實二者是有區別的。索引

pod install

新建一個Podfile文件運行後,若是對依賴庫不指定版本的話,cocoapods會安裝最新的版本,同時會自動生成一個Podfile.lock文件,Podfile.lock文件裏存儲着咱們已經安裝的依賴庫(pods)的版本。

再執行pod install的話,只會處理沒有記錄在Podfile.lock中的依賴庫,會查找匹配Podfile中描述的版本。`對於已經記錄在Podfile.lock的依賴庫,會下載Podfile.lock文件中記錄的版本`,而不會檢查是否有更新。

pod update

推薦用法:pod update 要更新庫的名字

這個命令會忽略Podfile.lock中的記錄,直接去找符合Podfile文件中的該依賴庫的約束版本(無約束的話就是最新版本)。

pod repo update

pod repo update 的工做就是更新pod資源目錄,也就是master下的資源。
資源

可能有些人會問了,我平時歷來不會用pod repo update也能夠拿到最新的庫,那是由於在使用pod update是默認會執行一遍pod repo update。並不須要常常跟你更新遠程CocoaPods/Spec,若是每次都更新執行時間較長,咱們能夠用到命令pod update --no-repo-update 來指定只根據本地目錄更新本地的索引文件,不須要拉取遠程。

有些時候會引用一些私有庫 , pod repo update 會把 ~/.cocoapods/repos/這個目錄下全部的資源庫目錄都更新一遍,有時候不想更新master,只想更新某個具體的私有庫

須要更新指定庫
pod repo update ~/.cocoapods/repos/***/

pod repo

顯示本地克隆的全部私有Speces庫信息

pod cache clean --all

執行pod install會根據podfile中的庫的版本描述安裝,本地也會將依賴的版本源代碼下載下來,這樣下次其它項目pod install相同版本庫時無需下載,提升速度。

若是想清除Pods目錄的緩存庫 執行命令

pod cache clean --all

pod repo remove

經過pod repo能夠顯示本地全部Spce倉庫,若是想刪除本地指定的Spce倉庫,執行指令

pod repo remove 本地私有庫的名稱

對這些CocoaPods原理流程搞明白後就能夠開始咱們的組件化開發之旅了。

相關文章
相關標籤/搜索