Cocoapods私有库管理

Cocoapods私有库管理_第1张图片
镇楼

前言

在我们开发过程中,有一些自己封装的工具类或是库,为了方便管理,我们借助cocoapods来实现。我们平时所接触的第三方库,是公开的,我们自己的代码使用私有库来进行。

私有库相关概念和原理

cocopods为包管理,那么顾名思义它只是管理我们所存代码的一些信息,并不是真正管理我们的代码。那么这里就需要两个仓库,其中一个仓库是托管cocoapods所需要的配置文件,另外一个仓库才是存放我们的代码。

工作原理

cocoapods是通过.podspec文件来索引私有库真的存代码的仓库。其所有配置文件托管在Master Repo。

核心概念:

.podspec : 该文件为你的代码仓库索引描述文件,CocoaPods通过该文件对你真正存储代码工程的 Git 仓库进行索引与下载

Lib : 你上传到远程Git仓库的代码工程,将来用于开源共享或则私有

Git 仓库 : Git介绍

CocoaPod 通过第一个 Git 仓库的里 .podspec 描述文件找到真正存储你代码的第二个 Git 仓库,然后根据 .podspec 里的相关字段对特定目录下的代码,三方依赖库,资源文件等进行下载。

换一种说法来理解,第一个 Git 仓库里的 .podspec 描述文件相当于我们的指针, 其指向的另一个 Git 仓库(内存)才是你自己真正所共享的代码。

私有库创建流程

基于git的仓库有很多,由于GitHub的私有库是收费的,所以笔者使用的码云。

1.首先创建仓库1,用于托管我们的代码。

创建仓库1

2.创建仓库2,用于存放cocoapoads索引所需的配置文件。

仓库2

3.前面已经将两个仓库建好了,那么接下来创建代码库Lib和托管Podspec文件。

(1)首先在本地创建一个Lib,使用终端cd到你文件想要保存的目录下,依照提示创建。

创建lib命令:pod lib create <#项目名字#>

当执行pod lib create ProjectName时,其实是下载了一个pod模板,然后在内部通过更改.podspec文件的配置定制化自己的pod,
pod lib create ProjectName其实使用了默认参数,补全的话pod lib create ProjectName --template-url=https://github.com/CocoaPods/pod-template.git,

当模板创建成功后,会自动使用XCode打开。

(2)接下来我们配置一下ExampleLib.podspec文件:

(3)配置好相关信息后,我们来检查一下文件格式和远程地址等信息是否正确:

pod lib lint

注意:提示信息需要没有error和warn:(这里一般出错都是远程仓库地址没配置好或是素材路径等)

通过Cocoapods创建出来的工程本身就在本地的Git管理下,我们需要做的就是给它添加远端仓库,此远程仓库就是上面我们创建的ExampleLib。网上大多数的做法是直接通过终端git命令行来上传,笔主这里使用可视化的git管理工具SourceTree;

使用SourceTree将远程仓库clone下来,然后将我们所创建的lib仓库复制好,进行远程推送。推送后一定要给本次推送打上tag(标签)。因为这个标签在下一步验证中需要使用。

添加标签

tag的版本号需要跟ExampleLib.podspec文件中的s.version一致。注意:SourceTree添加标签后,一定要再远程推送一编,这样远程仓库才有tag的。

远程验证Podspec正确性:

pod spec lint 会读取线上的repo并检查相应的tag

如果远程验证没过,一定要注意是不是远程仓库的tag没有添加成功。

PS:如何你在创建lib失败,错误如下:

创建失败一开始题主以为是ruby版本太低,经查阅资源得知是因为cocoapods的版本太低了。可以通过命令行pod --version查看版本号,低于1.2.0的都不行。

那么通过命令gem install cocoapods --pre来升级cocoapods。

升级后再重新开始创建lib就能正常创建了。

(4)存放代码的远程仓库已经弄好了,那么接下来就应该把ExampleLib.podspec文件上传到配置文件仓库,以便pod查询使用。我们平常使用到的第三方库的Podspec文件都托管在https://github.com/CocoaPods/Specs。可以进入 ~/.cocoapods/repos 目录下查看,三方库的所有配置文件都在Master文件夹中。

pod repo add 仓库名 仓库地址

~/.cocoapods/repos 目录下查看,就能找到我们刚刚添加的库了。

(5)最后就将ExampleLib.podspec文件上传到远程库

私有库的使用

私有库创建成功后,pod search 你的私有库名字可以搜索到我们的私有库。由于我们使用的私有库,那么就需要告诉cocoapods你所引用的私有库的配置文件在哪里,固在Podfile文件中需要添加私有库配置文件的远程仓库地址:

私有库的使用

总结

下面用一张图来总结整个过程:

流程

参考:

创建私有Pods,从小白到老铁

pod lib create fails

你可能感兴趣的:(Cocoapods私有库管理)