前言
最近一段時(shí)間在研究組件化,主要是基于CocoaPods的組件化方案,特此做個(gè)筆記,加強(qiáng)自己的記憶吧,大家可以一起探討組件化中遇到的問(wèn)題和想法!
CocoaPods最新安裝教程:
http://www.itdecent.cn/p/f43b5964f582
常見(jiàn)pod命令回顧:
在開(kāi)始之前,回顧一下組件化中常用的pod命令:
查看本機(jī)CocoaPod版本:
pod --version

查看本機(jī)CocoaPod源:
pod repo

由上圖可以看出我的電腦上有兩個(gè)源,即master和FDMediaSpecs
添加pod庫(kù)源:
pod repo add NAME URL [BRANCH]
pod repo add xxx http://xxxxxx.git master
刪除pod庫(kù)源:
pod repo remove 源名字
??源名字即master或者FDMediaSpecs
創(chuàng)建podfile文件:
pod init

然后就是編輯podfile文件podfile文件語(yǔ)法可以參考此文:
podfile語(yǔ)法
安裝podfile中的三方庫(kù):
pod install
升級(jí)podfile中的三方庫(kù):
pod update
cocapods本地spec索引庫(kù)的位置:
/Users/mac/.cocoapods/repos/master/Specs
cocoapods本地spec索引庫(kù)檢索索引文件位置:
/Users/mac/Library/Caches/cocoapods/search_index.json
cocoapods管理三方庫(kù)原理:
首先擼了一張圖大家湊合著看

流程解析
1.cocoapods 在官方在github創(chuàng)建了一個(gè)specs倉(cāng)庫(kù)用于存儲(chǔ)github上可以使用pod管理三方庫(kù)的podspec文件
三方庫(kù)的podspec文件如下圖:

githubspecs倉(cāng)庫(kù)里的文件:

2.每一個(gè)需要使用pod管理的三方庫(kù)都會(huì)生成一個(gè)podspec文件,然后吧文件上傳到cocoapods 在官方在github創(chuàng)建的specs倉(cāng)庫(kù)中;
podspec文件內(nèi)容:

上圖可見(jiàn)文件中包含了三方庫(kù)的作者、版本、地址、代碼地址等信息(podspec文件的制作、上傳及填寫(xiě)會(huì)在以后內(nèi)容中談到);
3.用戶(hù)安裝cocoapods時(shí)執(zhí)行
pod setup時(shí)會(huì)去github的specs倉(cāng)庫(kù)中下載相關(guān)的文件到本地方便檢索cocapods本地spec索引庫(kù)的位置:
/Users/mac/.cocoapods/repos/master/Specs
4.用戶(hù)執(zhí)行pod search時(shí)會(huì)根據(jù)本地specs倉(cāng)庫(kù)去創(chuàng)建search_index.json的索引文件,索引文件中包含了一個(gè)個(gè)三方庫(kù)的podspec文件中的信息
生成索引文件:

search_index.json文件的位置:
/Users/mac/Library/Caches/cocoapods/search_index.json
5.用戶(hù)在執(zhí)行pod install時(shí),pod會(huì)從上一部創(chuàng)建的search_index.json索引文件中去檢索podfile文件中三方庫(kù)的地址并去github下載安裝;pod update回去更新本地的索引庫(kù)并重新生成索引文件
安裝三方庫(kù):

至此,cocoapods的相關(guān)流程已經(jīng)說(shuō)完了!