Cocoapods工作原理介绍

本文旨在帮助不了解Cocoapods的童鞋快速了解Cocoapods内部工作机制。

介绍

我将以最常用的获取第三方库的过程为例子介绍,但是在这之前先看看一个生活中的例子在公司申请物品。它和我将要介绍的过程十分相似。

申请物品

配置概括
   通过图片我们可以看到:
    1. 我们填写好申请单。
    2. 去仓库找管理员拿物品。
    3. 管理员根据我们填写的申请单获取到我们需要物品的信息(名字等简单的信息)。
    4. 管理员通过物品的信息在物品登记管理系统中查找物品的位置等信息。
    5. 根据物品的信息去仓库找到物品,并且交给我们使用。

获取第三方库

现在我们再来看看获取第三方库的过程 :

配置概括

我们可以把这个过程类比为在公司中申请物品:
第三方库相当于我们申请的物品;
Cocoapods相当于仓库管理员;
Podfile相当于物品申请单;
Repos相当于物品登记管理系统;
  获取第三方库的过程的过程我们就可以这样理解:
    1. 我们根据cocoapods要求填写好Podfile文件
    2. 通过$pod install 让Cocoapods去拿第三方库。
    3. Cocoapods根据我们填写的Podfile文件获取到我们需要的第三方库的名字、版本号。
    4. Cocoapods在repos中查找,获得第三方库的URL。
    5. 根据获得的URL将第三方库源代码载入项目中。

接下来我们要介绍下Repos,解释cocoapods是为什么能从其中找到第三方库的URL。

repos

首先了解一下repos的构成:

repos所处的位置位于~/.cocoapods/目录下,正如其名字所指,这里面存放了我们的多个代码仓库。每个代码仓库中存放的是各个第三方库的所有详细信息,用podspec文件描述。
podespec是描述第三方库的文件,相当于物品管理系统中的一条物品的所有详细信息。cocoapods就是通过podespec读取到第三方库的URL,然后根据获得的URL将第三方库源代码载入项目中。