Cocoapods对于iOS开发者来说肯定不应该是一个陌生的工具,因为它的存在,使得开发者管理项目中用到的第三方库方便了许多,如果仅仅是简单的使用Pods管理第三方库并没有太多的问题,很多情况下,对于公司来说,很多的代码并不想开源,或者让更多的人知道,那么我们的项目更多的是采用公有库和私有库结合的方式,今天就总结一下私有库的制作方式,不求面面俱到,但求实用。

步骤概括

  1. 创建私有 Pods 存取仓库
  2. 创建 Pods 项目工程文件
  3. 创建并编写 pod 对应的 podspec 文件
  4. 测试 podspec 文件的可用性
  5. 提交 podspec 文件到repo
  6. 使用私有库

创建私有的 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
2
3
pod repo add MSPhotoSpecs https://gitee.com/pathfinder1989/MSPhotosSpecs.git

pod repo add PrivateRepoName PrivateCodeSrcURL

将命令中的 PrivateRepoName 替换成自己的私有仓库名字,PrivateCodeSrcURL 替换成自己的私有仓库的地址。
执行成功之后,可以去本地文件路径 ~/.cocoapods/repos 去查看,就会有该文件夹存在,只是文件夹下除了 README 没有其他文件。

第二步

创建 Pod 项目工程文件

这一步的意思是要创建私有仓库的源代码工程文件,当然如果你有现有的项目,并且在 Git 版本控制下,这一步就算完成了。

如果你没有现成的工程文件,可以选择 Cocoapods 提供的工具。在某一个文件夹下键入命令:

1
pod lib create XKPrivateKit

执行结果如图:
创建demo结果

这里面会问5个问题,稍微有点基础的应该都能看懂哈。

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

1
pod install

demo

然后再打开项目工程就可以看到,刚刚添加的组件就已经添加到 Pods 的 Development Pods 的文件夹下了。

如果你往这个文件夹下添加文件,那么每次都要执行 pod install 命令,然后重新打开工程项目才会出现刚刚添加的文件。

通过 Cocoapods 创建的项目本身就已经在 Git 项目的管理下,然后创建一个远端仓库,把本地的仓库跟远程的仓库关联,然后提交到远程仓库,并且打上 tag

demo

然后编辑 podspec 文件

demo

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

1
2
pod lib lint XKPrivateKit.podspec
pod lib lint XKPrivateKit.podspec --allow-warnings

demo

已经显示验证通过了。

向 SpecRepo 提交 podspec

已经验证通过的 podspec 向 specRepo 提交,该命令键入的时候也会再次验证
只需要一个命令

1
pod repo push XKPrivateSpecs XKPrivateKit.podspec

demo

此时就已经制作好了私有库 XKPrivateKit, 键入如下命令:

1
pod search XKPrivateKit

系统会显示 Done 之后就可以搜索到了,然后就可以使用了。

1
Creating search index for spec repo 'XKPrivateSpecs'.. Done!

###使用私有库

新建项目 DEMO 然后编写 Podfile 文件

1
2
3
4
5
6

target 'XKPrivate-demo' do
platform :ios, '9.0'

pod 'MSPhotoSelecting', '~> 0.1.0'
end

pod install 之后 会提示如下错误:

1
[!] Unable to find a specification for `MSPhotoSelecting (~> 0.1.0)`

解决方案就是在 Podfile 里面添加两句:

1
2
3
4
5
6
7
8
9
source 'https://github.com/CocoaPods/Specs.git'
source 'https://gitee.com/pathfinder1989/MSPhotosSpecs.git'


target 'XKPrivate-demo' do
platform :ios, '9.0'

pod 'MSPhotoSelecting', '~> 0.1.0'
end

然后再次执行 pod install 之后就能安装成功使用了。

参考资料

Private Pods