0%

CocoaPods不完全食用指南 — 私有篇

前言


随着公司项目变多,很多公共组件需要进行模块化管理,但是公司的代码又不能放在 Github 上,从而诞生了 私有库 这种只面向部分人的第三方开源库,本章将详细讲解基于 CocoaPods 对于模块化私有库的管理。

概要


私有库 的制作大致分为以下几个步骤:

  1. 创建并设置一个私有的 Spec Repo
  2. 创建 Pod 的所需要的项目工程文件,并且有可访问的项目版本控制地址
  3. 创建 Pod 所对应的 podspec 文件
  4. 本地测试配置好 podspec 文件是否可用
  5. 向私有的 Spec Repo 提交 podspec 文件
  6. 在项目中的 Podfile 中增加制作好的 Pod 并使用
  7. 更新维护 podspec
  8. 如果了解 公有库 的制作步骤,可以发现 私有库 的制作步骤多了一个创建私有的 Spec Repo 的过程,而且提交的过程也变成向私有 Spec Repo 提交了。

在制作私有库之前,推荐不了解的 公有库制作步骤 的同学先去了解一下

创建私有Spec Repo


Spec Repo 是一个装着所有 Pods 的索引容器,所有公开的 Pods 的索引都在这个里面,它是一个托管在 Github 的远程仓库。在本地使用 CocoaPods 后它会被 clone到本地的 ~/.cocoapods/repos 目录下,进入该目录可以看到如下结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.
├── master
│ ├── CocoaPods-version.yml
│ ├── README.md
│ └── Specs
│ ├── 0
│ ├── 1
│ ├── 2
│ ├── 3
│ ├── 4
│ ├── 5
│ ├── 6
│ ├── 7
│ ├── 8
│ ├── 9
│ ├── a
│ ├── b
│ ├── c
│ ├── d
│ ├── e
│ └── f

Specs 文件夹中就是所有向 CocoaPods 注册过的第三方库的索引。因此,我们建立私有库的第一步就是建立一个私有的 Spec Repo,在公司的 Git 上创建一个私有的仓库 Spec Repo,然后在本地增加 CocoaPods 的私有 Spec Repo 仓库

1
2
3
# private 是本地私有仓库的名字
# 地址是私有仓库的可访问地址,最好是SSH地址
pod repo add private root@git.canplay.com.cn:yanff/SpecRepo.git

此时到 ~/.cocoapods/repos 目录,可以看到多了个 private 的文件夹:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.
├── master
│ ├── CocoaPods-version.yml
│ ├── README.md
│ └── Specs
│ ├── 0
│ ├── 1
│ ├── 2
│ ├── 3
│ ├── 4
│ ├── 5
│ ├── 6
│ ├── 7
│ ├── 8
│ ├── 9
│ ├── a
│ ├── b
│ ├── c
│ ├── d
│ ├── e
│ └── f
└── private
├── LICENSE
└── README.md

此时创建私有 Spec Repo 的步骤就完成了

创建私有Pod工程文件


创建与测试的过程在这里不再详解,需要注意的是:
Pod 项目工程文件所添加的远程仓库应该也在公司的 Git 上,而且拥有地址的访问权限,Podsepc 文件中的地址最好是仓库的 SSH 地址。

Spec Repo提交podspec


与创建 公有库 不同的是,此时提交应该向私有 Spec Repo 提交

1
2
# private 是本地私有仓库的名字
pod repo push private PodDemo.podspec

此时在之前建立的远程 Spec Repo 仓库里能看到我们提交的 podspec 文件了

最后更新一下本地的私有 Spec Repo

1
2
# private 是本地私有仓库的名字
pod repo update private

然后输入搜索命令

1
pod search PodDemo

就可以搜索到刚刚提交的库了

1
2
3
4
5
6
-> PodDemo (1.0.0)
a brief introduction
pod 'PodDemo', '~> 1.0.0'
- Homepage: https://root@git.canplay.com.cn:yanff/PodDemo
- Source: https://root@git.canplay.com.cn:yanff/PodDemo.git
- Versions: 1.0.0 [private repo]

此时,我们的私有库就制作完毕了。

在Podfile中加入私有Spec Repo地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
platform :ios, '8.0' #当前工程最低支持iOS 8.0

source 'https://github.com/CocoaPods/Specs.git' # 官方库
source 'root@git.canplay.com.cn:yanff/SpecRepo.git' # 私有库

target 'NAME' do #NAME是工程的名字

pod 'AFNetworking', '~> 3.1.0' #导入AFNetworking 3.1.0的版本

pod 'PodDemo', '~> 1.0.0'

end
~
~
~
~
~
~
-- INSERT --

然后执行命令就可以使用私有库了

1
pod install

注意


如果有其他合作人员共同使用这个私有库 的话,需要给予对应远程 私有库 仓库和 Spec Repo 仓库的权限,最好使用 SSH 认证连接 ,然后再执行上面的命令添加这个 Spec Repo 到本地即可。

更多