这里使用gitLab的私有远程仓库
注意: 默认读者会使用Git管理代码, 以及上传至远程Git仓库
如果有错误的地方请留言, 我会修改
第一步, 添加远程私有索引仓库并创建readme以及初始tag版本(这是作为索引使用,可以不用加tag,下面会讲到的代码仓库是一定要标记tag的)标记
处理readme以及新加初始tag之后:
第二步:同样创建一个代码库
同样处理readme以及初始tag标记,之后
然后我们开始进入正题:
创建本地索引库
首先我们先查看远程cocoaPods私有索引仓库界面
打开终端, 输入 pod repo页面显示如下:
得到的结果: URL(表示的是远端的索引地址)、Path(本地的索引库地址,可以show in finder查看)
第三部:我们创建私有库的索引:
命令
输入 pod repo add 仓库名 仓库SSH(HTTPS)地址 来添加一个远程索引仓库
添加一个远程索引仓库
仓库SSH(HTTPS)地址位置之前的第二张图片中被涂抹掉的地方可以查看
再次输入 pod repo 命令:
成功添加FSRes-iOS远程私有索引库
FSRes-iOS就是我刚才添加的远程私有索引库
第四步:我们创建代码库依赖代码:
(这里可以将我们第二部创建的代码库克隆到本地的一个文件夹备用)
我们在任意地方的目录下终端执行命令:
输入指令创建一个git本地仓库 pod lib create 仓库名
将创建出来的文件内容拷贝到我们的之前克隆本地的文件夹项目中(这里建议代码库的名称和我们终端创建的仓库名保持一致)
打开Example下的demo工程
我们来修改cocoapods提交配置文件FSRes-iOS-Code.podspec
配置完成
s.homepage需要设置刚创建的私有代码仓库的地址, 不是私有索引库的地址(建议使用http或https连接,不用ssh)
s.source 需要设置的是私有代码仓库的源地址(建议使用http或https连接,不用ssh)
新项目中的这个位置会有一个replaceme 的.m文件,将它删除,然后在同样的位置添加你想要公开的自由组件代码。
上面这些组件库的代码文件路径如下:
组件的创建不要依赖于主项目,即组件库代码不管是拖拽进来的、还是add file to、还是新建的,会有选项依赖的添加其中的Add to targets不勾选任何一个
然后我们进入到刚才打开的Example文件夹下执行:pod install
能看到高亮的提醒即表示有文件引入,(这里我已经引入过了,就没有新的添加项提示了)
将刚创建的本地仓库上传到这个项目中, 并打上tag, 这个tag必须和上面podspec文件中的版本一致(我上面的版本是0.0.1, 所以我打的tag就是0.0.1)
打上tag标签:
git tag -a v0.0.1 -m “0.0.1版本测试”
然后同步提交远端代码库
第五步:本地远端的校验
打开终端, cd到FSRes-iOS-Code文件夹(使用pod lib screate 命令创建的本地代码仓库), 分别使用 pod lib lint 和 pod spec lint 命令进行podspec的本地校验和远程校验
校验通过,没有报错。(这里要保证本地索引库和远端同步)
问题以及解决:这一步,我在配置的时候遇到一个问题,即:远端校验pod spec lint 命令执行之后一直报一个错误:‘source_files’下面不包含任何文件,我已经检查过本地创建的代码库的podspec文件的路径没有问题,并且这个路径下面也是存在我新加的组件代码,都没有问题。后来经过网上查找发现,是由于我测试学习使用,已经在本地创建过了一个同样名称的组件库,虽然远端gitlab已经删除重建,但是本地的索引资源配置等没有删除完全。
这里将使用的几个路径奉上:
1.就是我们创建的代码库,这个就不多说了。
2.本地索引库(我们使用pod repo查看的),测试的时候也要清除重建
3.很重要,我的问题就在这(参考连接:https://www.jianshu.com/p/9a5ec24ff437):路径:/Users/(你电脑的用户名)/Library/Caches/CocoaPods/Pods/External/(你要传的项目文件)
这里的文件是执行远端校验的资源配置路径,报的‘source_files’下面不包含任何文件,就是这里。(我的是因为重新建了同名称的文件,导致这里内部有两个md5的文件夹)你可以删了重新执行本地和远端的校验,也可以在你的md文件夹中拷贝进你的代码库里面的LICENSE和组件库文件夹(和license同级的文件)(我的就是FSRes-iOS-Code)
这里也给大家看一下完整的本地cocoapods(这一点最初的那个路径下)里面的扩展代码集样子
第六步:校验
以上步骤完成后, 需要将FSRes-iOS-Code.podspec文件上传到本地的私有索引库, 接着会自动上传至远程私有库
终端使用pod repo文件查看现有索引库
cd 至 FSRes-iOS-Code 文件夹下, 接着执行: pod repo push 索引库名 podspec文件名
上面的索引库名就是你的本地的pod repo显示的创建的那个名称
上传到本地索引库, 它自动上传至远程索引库
这个时候的索引库就变样子了
到这里搭建组件库就结束了。
接下来就可以创建demo工程使用了,
在桌面上创建一个测试工程
新建测试工程
cd到Test文件夹, 并使用终端调用pod init命令创建一个Podfile文件
Podfile文件
调用pod repo命令, 查看当前索引库的URL地址
查看URL地址
打开Test中的Podfile文件, 如下填写
填写完毕
cd 到Test文件夹下, 使用终端执行pod install 命令, 此时两个第三方代码就成功安装到项目中
使用CocoaPods安装第三方代码
打开Test工程, 可以看到安装的第三方库, 一个是AFNetworking(公共库) 和 FSRes-iOS-Code(远程私有库)
Test工程
最后
创建的FSRes-iOS私有库是用来存放CocoaPods索引文件(podspec类型)的
创建的FSRes-iOS-Code私有库是用来存放远程私有代码的(同github分享开源代码)
使用iOS来存放FSRes-iOS-Code的podspec文件, 就是远程私有库的核心
最后使用CocoaPods就可以安装私有库中的代码了, 私有库中代码只有自己和自己指定的人使用 (其他人使用, 必须添加你的CocoPods私有库, 并且要在你的码市账号中设置SSH的公钥才行)
以后的私有远程代码也可以使用这个FSRes-iOS索引库来管理.
下一篇:私有库维护:https://blog.youkuaiyun.com/BUG_delete/article/details/100692716