iOS組件化之路總結(jié)一(CocoaPods安裝三方庫(kù)原理)

前言

最近一段時(shí)間在研究組件化,主要是基于CocoaPods的組件化方案,特此做個(gè)筆記,加強(qiáng)自己的記憶吧,大家可以一起探討組件化中遇到的問(wèn)題和想法!
CocoaPods最新安裝教程:
http://www.itdecent.cn/p/f43b5964f582

常見(jiàn)pod命令回顧:

在開(kāi)始之前,回顧一下組件化中常用的pod命令:

查看本機(jī)CocoaPod版本:

pod --version

查看版本.png

查看本機(jī)CocoaPod源:

pod repo

本機(jī)源.png

由上圖可以看出我的電腦上有兩個(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.png

然后就是編輯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文件如下圖:

Snip20181025_9.png

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

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

4.用戶(hù)執(zhí)行pod search時(shí)會(huì)根據(jù)本地specs倉(cāng)庫(kù)去創(chuàng)建search_index.json的索引文件,索引文件中包含了一個(gè)個(gè)三方庫(kù)的podspec文件中的信息

生成索引文件:

生成索引文件.png

search_index.json文件的位置:
/Users/mac/Library/Caches/cocoapods/search_index.json
caches中的search_index索引文件.png

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

pod install安裝三方庫(kù).png

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來(lái)越多的技術(shù)公司推崇使用pod管理第三方庫(kù)以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 22,845評(píng)論 0 39
  • 最近在學(xué)習(xí)vue.js的時(shí)候發(fā)現(xiàn),vue的組件化的思想對(duì)于編寫(xiě)代碼是一個(gè)非常有用的事情。 首先為什么需要組件化? ...
    拂曉的云閱讀 7,353評(píng)論 6 23
  • CocoaPods 是什么? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開(kāi)源庫(kù)的工具。CocoaPo...
    朝洋閱讀 25,990評(píng)論 3 50
  • 一. CocoaPods的介紹 什么是CocoaPods?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開(kāi)源庫(kù)...
    輝712閱讀 4,107評(píng)論 0 7
  • 今天又是晴朗的天空 我總結(jié)過(guò)我人生最美好的幾個(gè)瞬間 其中一個(gè)就包括春末夏初的一個(gè)明媚的陽(yáng)光 但是還是一如既往的困 ...
    初三十白閱讀 412評(píng)論 0 0

友情鏈接更多精彩內(nèi)容