Cocoapods 制作私有podspec
Cocoapods对于iOS开发者来说肯定不应该是一个陌生的工具,因为它的存在,使得开发者管理项目中用到的第三方库方便了许多,如果仅仅是简单的使用Pods管理第三方库并没有太多的问题,很多情况下,对于公司来说,很多的代码并不想开源,或者让更多的人知道,那么我们的项目更多的是采用公有库和私有库结合的方式,今天就总结一下私有库的制作方式,不求面面俱到,但求实用。
步骤概括
- 创建私有 Pods 存取仓库
- 创建 Pods 项目工程文件
- 创建并编写 pod 对应的 podspec 文件
- 测试 podspec 文件的可用性
- 提交 podspec 文件到repo
- 使用私有库
创建私有的 spec repo
不管是私有的 spec repo 还是公有的 spec repo ,都是一个存放 podspec 文件的仓库.
公有库
对于公有 specRepo 来说,所有的公开的 podspec 都存放在里面,地址,当我们在安装 Cocoapods 使用 pod setup 命令的时候,那些库的索引文件会被 clone 到路径 ~/.cocoapods/repos 下面
私有库
模仿公有的 specRepo ,创建一个repo ,因为是私有 repo,创建的时候选择 private ,这儿可以选择 Github 的付费会员,Bitbucket,或者国内的 CSDN , OSChina, GitLab,或者公司自己搭建的Git。
第一步操作

念叨一句,如果是私有的repo,记得选择 private ,公司里记得跟合作的同事开取相应的权限,如果是自己测试,无所谓了。
第二步操作
在终端中键入如下命令:
1 | pod repo add MSPhotoSpecs https://gitee.com/pathfinder1989/MSPhotosSpecs.git |
将命令中的 PrivateRepoName 替换成自己的私有仓库名字,PrivateCodeSrcURL 替换成自己的私有仓库的地址。
执行成功之后,可以去本地文件路径 ~/.cocoapods/repos 去查看,就会有该文件夹存在,只是文件夹下除了 README 没有其他文件。

创建 Pod 项目工程文件
这一步的意思是要创建私有仓库的源代码工程文件,当然如果你有现有的项目,并且在 Git 版本控制下,这一步就算完成了。
如果你没有现成的工程文件,可以选择 Cocoapods 提供的工具。在某一个文件夹下键入命令:
1 | pod lib create XKPrivateKit |
执行结果如图:
这里面会问5个问题,稍微有点基础的应该都能看懂哈。

然后把你要封装的代码文件夹放到 ReplaceMe 处。我是把一个相册库放这儿了,然后到 Example 文件下执行
1 | pod install |

然后再打开项目工程就可以看到,刚刚添加的组件就已经添加到 Pods 的 Development Pods 的文件夹下了。
如果你往这个文件夹下添加文件,那么每次都要执行 pod install 命令,然后重新打开工程项目才会出现刚刚添加的文件。
通过 Cocoapods 创建的项目本身就已经在 Git 项目的管理下,然后创建一个远端仓库,把本地的仓库跟远程的仓库关联,然后提交到远程仓库,并且打上 tag

然后编辑 podspec 文件

每次编辑完成这个文件之后,先验证一下这个文件是否可用,该文件不能有任何的错误,WARNING 可以使用命令忽略警告。
1 | pod lib lint XKPrivateKit.podspec |

已经显示验证通过了。
向 SpecRepo 提交 podspec
已经验证通过的 podspec 向 specRepo 提交,该命令键入的时候也会再次验证
只需要一个命令
1 | pod repo push XKPrivateSpecs XKPrivateKit.podspec |

此时就已经制作好了私有库 XKPrivateKit, 键入如下命令:
1 | pod search XKPrivateKit |
系统会显示 Done 之后就可以搜索到了,然后就可以使用了。
1 | Creating search index for spec repo 'XKPrivateSpecs'.. Done! |
###使用私有库
新建项目 DEMO 然后编写 Podfile 文件
1 |
|
pod install 之后 会提示如下错误:
1 | [!] Unable to find a specification for `MSPhotoSelecting (~> 0.1.0)` |
解决方案就是在 Podfile 里面添加两句:
1 | source 'https://github.com/CocoaPods/Specs.git' |
然后再次执行 pod install 之后就能安装成功使用了。