前言 在一个团队中,随着项目规模越来越大,职责的明确、代码的复用、业务模块的高耦合,成为越来越严重的问题,利用CocoaPods常建仅团队成员有权限的私有Pod在一定程度上可以解决以上问题。
podspec、podspec repo、code、code repo分别是?
在开始创建之前,先明确podspec*、podspec repo、code、code repo分别是什么?
- podspec:创建的pod库的元信息,比如库名称、版本、库描述、代码下载地址等。CocoaPods就是根据库元信息找到该库真正下载的地址。
- podspec repo:podspec所存在的仓库。我们平常使用的各种第三方库的元信息都储存在CocoaPods的Specs仓库中。
因为是制作私有Pod的,所以这里的podspec repo就是我们自己在gitHub等平台上创建私有的仓库。
- code:这里的code指创建的pod库,相关的功能代码、测试用例等都是在pod库中。
- code repo:存放pod库代码的仓库。加上存放元信息的库,创建一个私有pod需要创建两个仓库(如果之前没有创建过podspec repo的话)。
创建本地Pod库
假设我们需要创建一个MyPodDemo库
创建本地Pod库:’pod lib create MyPodDemo’,执行完该命令后,会提示如下命令,按需设置即可。
同时该命令会为我们创建一个Workspace,目录如下:
主要信息为图中红色标注的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版本,这里的版本号是前面编辑的元信息的版本号。
创建元信息库
平常使用的各种第三方库的元信息都储存在CocoaPods的Specs仓库中。这里我们需要把podspec推送到私有的podspec repo中。
1、将pod库添加到CocoaPods本地的仓库列表中
pod repo add DuYangLu https://github.com/DuYangLu/PodSpecs
2、查看CocoaPods本地现有的仓库
pod repo
3、创建远程私有仓库,当作元信息库,选择github等。 这里在gitHub上创建了PodSpecs元信息库。
4、推送Pod库元信息到私有仓库中(元信息库)
pod repo push DuYangLu MyPodDemo.podspec
如果控制台出错并提示一些警告,可忽略警告,该用以下命令继续执行:
pod repo push DuYangLu MyPodDemo.podspec --allow-warnings
推送成功后,控制台中会有如下提示:
总结
以上就是创建一个私有Pod的基本流程了。
在使用的时候在Podfile文件头部添加元信息库地址,以及添加库名称。