本篇中使用的远程仓库是码市
注意: 默认读者会使用Git管理代码, 以及上传至远程Git仓库
如果有错误的地方请留言, 我会修改
第一步, 添加远程私有索引仓库
注册登录后的界面

码市
点击添加项目

远程私有索引库
点击创建项目后跳转界面

创建仓库后直接跳转的界面
点击左侧 代码 选项卡, 进入私有的远程cocoaPods仓库界面

远程cocoaPods私有索引仓库界面
打开终端, 输入指定 pod repo

当前的远程索引仓库
可以看到cocoaPods目前链接了一个远程索引仓库, URL是在github上的远程索引仓库, Path是通过pod setup下载到本地的索引仓库
可以输入指令 pod repo --help 查看当前pod repo 拥有的命令

命令
输入 pod repo add 仓库名 仓库SSH(HTTPS)地址 来添加一个远程索引仓库

添加一个远程索引仓库
仓库SSH(HTTPS)地址位置在码市上的下图位置

仓库SSH(HTTPS)地址位置
再次输入 pod repo 命令

成功添加LTPodspecs远程私有索引库
LTPodspecs就是我刚才添加的远程私有索引库
第二步, 配置一个私有的代码仓库
打开码市, 新添加项目, 这个项目是被CocoaPods管理的私有代码仓库, 用来存储需要被管理的代码, 和上面创建的索引库用处不同

我在桌面上创建了一个新的文件夹, 用来配置私有代码库

新建文件夹
使用终端cd到当前文件夹

cd
输入指令创建一个git本地仓库 pod lib create 仓库名

git仓库
本仓库用来测试和上传 私有代码
创建的git本地仓库

git本地仓库
打开测试工程, 找到ReplaceMe.m文件并删除

打开测试工程

删除文件
找到需要CocoaPods私有仓库管理的源码(我这里的是Category文件夹), 并拖拽代码文件到Classes文件夹中, 选择Copy Items if needed

选择Copy Items if needed

拖拽代码到Classes文件夹中
可以通过Show In Finder查看拖入文件夹的所在真实位置

Show In Finder

24.png
因为测试工程创建完之后引用的LTCategorys文件中并没有刚拖入的Category文件夹中文件, 所以需要重新pod install一下
cd到测试工程文件夹, 并执行命令 pod install


cd到Example文件夹, 并执行pod install
此时拖入工程的Category中文件就可以正常使用了, 此时使用的是本地私有库
打开测试工程, 在下面的位置可以进行podspec文件的配置

podspec文件位置
简单解释

简单解释

配置完成
s.homepage需要设置刚创建的私有代码仓库的地址, 不是私有索引库的地址
s.source 需要设置的是私有代码仓库的源地址(选择使用HTTPS地址)
将刚创建的本地仓库上传到这个项目中, 并打上tag, 这个tag必须和上面podspec文件中的版本一致(我上面的版本是0.1.0, 所以我打的tag就是0.1.0)

上传代码到远程私有仓库

打上的tag
打开终端, cd到LTCategorys文件夹(使用pod lib screate 命令创建的本地代码仓库), 分别使用 pod lib lint 和 pod spec lint 命令进行podspec的本地校验和远程校验

cd

校验
以上步骤完成后, 需要将LTCategorys.podspec文件上传到本地的私有索引库, 接着会自动上传至远程私有库
终端使用pod repo文件查看现有索引库
cd 至 LTCategorys 文件夹下, 接着执行 pod repo push 索引库名 podspec文件名

查看现有索引库

上传到本地索引库, 自动上传至远程索引库
远程索引库中的索引文件

远程索引库中的索引文件
在桌面上创建一个测试工程

新建测试工程
cd到Test文件夹, 并使用终端调用pod init命令创建一个Podfile文件

Podfile文件
调用pod repo命令, 查看当前索引库的URL地址

查看URL地址
打开Test中的Podfile文件, 如下填写

介绍

填写完毕
cd 到Test文件夹下, 使用终端执行pod install 命令, 此时两个第三方代码就成功安装到项目中

使用CocoaPods安装第三方代码
打开Test工程, 可以看到安装的第三方库, 一个是AFNetworking(公共库) 和 LTCategorys(远程私有库)

Test工程
最后
创建的LTPodspecs私有库是用来存放CocoaPods索引文件(podspec类型)的
创建的LTCategorys私有库是用来存放远程私有代码的(同github分享开源代码)
使用LTPodspecs来存放LTCategorys的podspec文件, 就是远程私有库的核心
最后使用CocoaPods就可以安装私有库中的代码了, 私有库中代码只有自己和自己指定的人使用 (其他人使用, 必须添加你的CocoPods私有库, 并且要在你的码市账号中设置SSH的公钥才行)
以后的私有远程代码也可以使用这个LTPodspecs索引库来管理
网友评论