上一讲我们讲到了如何创建本地私有仓库,关于远程私有库就是我们按照 cocoapods 的一些规范创建一个自己的私有索引文件库和一个自己的私有库代码仓库,私有索引库存放我们私有库的podspec索引文件,后边更改了私有库版本内容,就将私有库的podsepc文件提交到这个私有索引库仓库里.
接下来我会具体的讲解 如何去生成这样一个远程私有索引库仓库,方便公司内部开发人员去使用这个远程私有库.
///这是笔者电脑上的一个本地私有库索引仓库,可以通过pod repo push YVPrivateSpecs xx.podsepc 将某个私有库的信息上传到远程私有索引库仓库
image.png具体步骤如下
1 在 github或者 git.oschina 等 git 托管平台创建一个私有索引库仓库,创建完这个远程私有库索引仓库后 clone 到本地
2 将这个远程私有库添加到 .cocoapods/repos 文件下 ,当你使用pod repo 或者 pod search xxx时候 才能在你本地cocoa pods.索引库文件里找到 .cocoapods是一个隐藏文件,需要开启电脑权限才能查看隐藏文件夹.
image.png不知道cocoapods安装目录的 .cocoapods 文件目录的 可以点击前往->个人 查看
image.png不能讲 clone 下来的 MyPrivateSpecs文件夹直接拷贝到.cocoapods/repos/目录下边 需要通过终端命令
cd /Users/dzb/Desktop/MyPrivateSpecs //打开下载到本地的私有索引库仓库
pod repo add xxx(私有库名称) https://gitee.com/fmdb/MyPrivateSpecs.git(git仓库地址)
image.png然后前往->个人->.cocoapods/repos/ 查看刚刚添加的MyPrivateSpes
image.png2 创建一个远程私有库 MyLib 并将创建好的MyLib私有仓库 clone到本地 (笔者在git.oschina创建的私有库,有大概1g 的免费空间可供使用,平时代码都托管在这个平台).
image.png3 给这个 MyLib这个私有库添加Person.h,Person.m文件 并编写podspec文件信息
image.png4 提交 MyLib 到git远程仓库 并打 tag 0.0.1 (跟podspec文件s.verson保持一致, tag 跟s.source 后边 :tag => 保持一致) 至于git的一些操作命令不在详细描述,提交完毕后讲MyLib.podspec拷贝到 本地私有索引库 MyPrivateSpecs 文件夹里边
image.png5 提交这个 本地私有索引库到cocoapods (并不是把这个私有仓库提交到cocoapods 只是建立联系,通过pod install pod search 时候能够去你自己的git仓库去下载相应的代码)
cd /Users/dzb/Desktop/MyPrivateSpecs
pod repo push MyPrivateSpecs MyLib.podspec __verbose __allow_warning
__verbose 显示详细日志信息 包含错误提示信息
__allow_warning 是否允许警告 主要是私有库代码方面 一些编译警告 加上这个命令后 提交过程中编译代码时候有警告也不影响提交
//提交过程中可能由于podspec文件描述信息错误 或者 代码本身编译不通过 各种原因导致提交失败 需要根据实际情况一一解决
image.png///也可以在提交之前检查下podspec 是否可用 由于是本地私有库 没有提交到远程私有库 所以只是对本地检验 需要加__private
pod spec lint xxx.podspec --verbose __private __allow_warnings
检验通过后 证明podsepc能够提交 这个时候就可以执行
pod repo push 操作
6 如何使用这个远程私有库呢?
聪明的同学可能想到了 创建一个新的工程 在podfile 文件下 加上 pod 'MyLib' 然后 pod install 就能安装到工程中
这里边还隐藏了一个细节 就是制定 cocoapods 源 因为我们平时用的MJExetnsion AFNetworking都是公共开源库 是在github上托管的 ,当你使用私有库时候 其实是在我们自己的 git 托管平台 不对外公开 ,所以需要在你使用工程里podfile文件 最上边
source 'https://gitee.com/fmdb/MyPrivateSpecs.git' #私有库地址
source 'https://github.com/CocoaPods/Specs.git' #公共库地址
告诉 cocoapods 你使用的库 在那个远程索引库里边 ,你写的代码一般是不会被上传到cocoapods上边的 只是将一个索引文件podspec上传到 cocoapods 将来 cocoapods 根据你索引文件上的代码git 仓库地址 去github 或者私有的 git 托管平台去下载你上传的代码
写到最后 截图一不小心透露了笔者科密的事实,大兵布莱恩特 简称大兵 吾岁十八识得科比 所以叫大兵布莱恩特
网友评论