一、背景
首先了解下使用需求。公司有多个项目同时进行,期望可以共用一个工具库。而该工具库代码可能涉及到公司内部信息,不便公开,需要部署在内部服务器上。也就是私有库的管理。
大家都知道CocoaPods管理第三方库十分方便,所以我们希望私有库的使用也可以借助CocoaPods管理。
二、准备私有库平台
首先,我们需要一个管理私有库代码的平台,我们公司暂时使用的是GitLab,先了解下概念。
Git:版本控制系统。
Github:在线的基于 Git 的代码托管服务,同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,只有付费账户可以创建私有的代码仓库。
Gitlab解决了这个问题, 可以在上面创建免费的私人repo。
如何搭建本地服务器Gitlab仓库管理,大家自己去看吧。
三、创建一个Git远程仓库
我们私有库包含多个工具类的代码库,每个工具库代码使用CocoaPods打包后会生成一个.podspec文件,来描述该工具库的具体信息,包括代码地址。而所有的库的.podspec文件要有一个Spec Repo私有仓库去管理。
多个.podspec文件也称specs,作为我们查找库时候的一个索引,为什么我们执行pod search AFNetworking命令时,返回结果如此之快。因为安装CocoaPods的时候,本地目录就已经有了一份master(公开)的specs,全球程序员们提交到CocoaPods的开源代码在这都有记录。
我们可以通过执行命令查看一下目录结构,结果一目了然。命令如下:
open ~/.cocoapods/repos/master
我们创建的私有specs仓库地址为http://私有库地址/EHILibraryiOS/EHILibrarySpecs.git。下面执行命令把Spec创建到本地。命令如下:
pod repo add EHILibrarySpecs http://私有库地址/EHILibraryiOS/EHILibrarySpecs.git
这时候EHILibrarySpecs就在本地目录下创建成功了,通过命令查看EHILibrarySpecs的目录结构,会发现里面的内容和git仓库上的保持一致。EHILibrarySpecs和master在目录中同级。
open ~/.cocoapods/repos/EHILibrarySpecs |