使用CocoaPods创建私有Pod

244 阅读3分钟

前言 在一个团队中,随着项目规模越来越大,职责的明确、代码的复用、业务模块的高耦合,成为越来越严重的问题,利用CocoaPods常建仅团队成员有权限的私有Pod在一定程度上可以解决以上问题。

podspecpodspec repocodecode repo分别是?

在开始创建之前,先明确podspec*、podspec repocodecode repo分别是什么?

  • podspec:创建的pod库的元信息,比如库名称、版本、库描述、代码下载地址等。CocoaPods就是根据库元信息找到该库真正下载的地址。
  • podspec repo:podspec所存在的仓库。我们平常使用的各种第三方库的元信息都储存在CocoaPods的Specs仓库中。

lk6Ees.jpg

因为是制作私有Pod的,所以这里的podspec repo就是我们自己在gitHub等平台上创建私有的仓库。

  • code:这里的code指创建的pod库,相关的功能代码、测试用例等都是在pod库中。
  • code repo:存放pod库代码的仓库。加上存放元信息的库,创建一个私有pod需要创建两个仓库(如果之前没有创建过podspec repo的话)。

创建本地Pod库

假设我们需要创建一个MyPodDemo库

创建本地Pod库:’pod lib create MyPodDemo’,执行完该命令后,会提示如下命令,按需设置即可。

lk6yTI.jpg

同时该命令会为我们创建一个Workspace,目录如下:

lk6T7n.jpg

主要信息为图中红色标注的1、2。 标注1:pod库信息,MyPodDemo.podspec就是上面所说的元信息podspec 标注2:这里就是我们添加代码文件的地方。注意一定要放在Classes目录下。

编辑pod库元信息

主要信息如下: s.name :pod库名称 s.version :版本号 s.summary:概述 s.description :详细描述 s.homepage :pod库存放的仓库,也就是code repo s.author:作者及其邮箱 s.source :元信息存放的库,也就是podspec repo 等等。。。

编辑pod库元信息

验证podspec文件:在pod库根目录下执行pod spec lint命令。 如果只有一些问题不大的警告的话,可以通过pod spec lint --allow-warnings命令继续验证,待验证通过,控制台输出MyPodDemo.podspec passed validation.,表示文件有效。

依赖私有库

因为pod spec中只会检查CocoaPods master specs,所以在该仓库应用其它私有仓库时,需要修改为以下类似命令:

pod spec lint —-sources=‘git@our-private-spec-repo:iOS/Specs.git,https://github.com/CocoaPods/Specs'

pod库关联远程仓库

1、把code存放在我们自己的远程仓库中,也就是code repo。 2、发布release版本,这里的版本号是前面编辑的元信息的版本号。

lkcQ4P.jpg

创建元信息库

平常使用的各种第三方库的元信息都储存在CocoaPods的Specs仓库中。这里我们需要把podspec推送到私有的podspec repo中。

1、将pod库添加到CocoaPods本地的仓库列表中 pod repo add DuYangLu https://github.com/DuYangLu/PodSpecs

2、查看CocoaPods本地现有的仓库 pod repo

lkguMF.jpg

3、创建远程私有仓库,当作元信息库,选择github等。 这里在gitHub上创建了PodSpecs元信息库。

lkcw40.jpg

4、推送Pod库元信息到私有仓库中(元信息库) pod repo push DuYangLu MyPodDemo.podspec

如果控制台出错并提示一些警告,可忽略警告,该用以下命令继续执行: pod repo push DuYangLu MyPodDemo.podspec --allow-warnings

lkcRER.jpg

推送成功后,控制台中会有如下提示:

lkgMqJ.jpg

总结

以上就是创建一个私有Pod的基本流程了。

在使用的时候在Podfile文件头部添加元信息库地址,以及添加库名称。

lkcIgO.jpg