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原理流程搞明白后就能够开始咱们的组件化开发之旅了。

相关文章
相关标签/搜索