iOS组件化(二):创建远程私有库
2018-07-05 本文已影响18人
WinJayQ
由于github的私有库需要收费,因此我们使用码云(gitee)的私有库,免费。
1、创建WJSpec远程私有仓库,用来存放podspec文件。
1.1 在码云中创建私有项目:
![](https://img.haomeiwen.com/i1013424/d58f69a4210a5096.png)
![](https://img.haomeiwen.com/i1013424/696608eb3d3687f0.png)
1.2 添加你的私有Repo到你的CocoaPods
pod repo add WJSpec https://gitee.com/winjayq/WJSpec.git
![](https://img.haomeiwen.com/i1013424/6d9d3f7c62d369fd.png)
![](https://img.haomeiwen.com/i1013424/3a17267160c1b837.png)
1.3 如果需要删除,则使用终端命令:
pod repo remove WJSpec
2、创建WJCategory远程仓库,用来存放项目工程文件
![](https://img.haomeiwen.com/i1013424/ea3e6477d0ebe852.png)
2.1 创建pod私有仓库的模板
pod lib create WJCategory
![](https://img.haomeiwen.com/i1013424/f6b3dd97a3d5ceda.png)
执行完会自动打开工程:
![](https://img.haomeiwen.com/i1013424/125083960af0bda1.png)
2.2 代码拖到classes
将代码拖到ReplaceMe.m的文件目录下,删除ReplaceMe.m
![](https://img.haomeiwen.com/i1013424/fbdc110054f4bf2f.png)
2.3 pod安装进行测试
cd 到Example目录
![](https://img.haomeiwen.com/i1013424/71ae4a57dd147736.png)
安装成功
![](https://img.haomeiwen.com/i1013424/d7ae0cf1448464f5.png)
在Example工程里引入头文件就可以使用了
![](https://img.haomeiwen.com/i1013424/02da61e6984f199a.png)
2.4 修改podspec描述文件
![](https://img.haomeiwen.com/i1013424/95690bad7eb3df70.png)
2.5 自己本地端检测 pod lib lint
修改完成后,cd 到WJCategory目录下,然后验证podspec文件
pod lib lint
出现WJCategory passed validation.则验证通过。
2.6 提交项目到远程仓库
cd 到WJCategory目录下
git add .
git commit -m '分类组件'
关联远程仓库,提交:
![](https://img.haomeiwen.com/i1013424/b9bf11bc0f9d3919.png)
push到远程的时候出现这种问题,于是就先pull ,于是就出现了图中这种经典的问题了
![](https://img.haomeiwen.com/i1013424/6a01ef42d3344afe.png)
重新输入如下命令:
git pull origin master --allow-unrelated-histories
![](https://img.haomeiwen.com/i1013424/64df9ba001385d98.png)
解决一下冲突就可以了。解决冲突后上传到远程仓库。
解决冲突参考链接:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000
手动修改冲突的文件:
![](https://img.haomeiwen.com/i1013424/a045bab9176b6e0c.png)
提交到远程,这样远程仓库就有我们本地的项目了:
git push origin master
![](https://img.haomeiwen.com/i1013424/765c06ffcedaff22.png)
2.7 pod spec lint 远程端检测
注意:如果私有库中依赖私有库,则验证podspec文件的时候需要加上–sources参数,否则会出现找不到你依赖的私有库。
远程端检测报错:
![](https://img.haomeiwen.com/i1013424/9b65d8a32a8cfed9.png)
显示我们没有远程仓库打标签,这里需要重点注意的是,我们给打的标签值要与podspec文件中的版本号一致。
![](https://img.haomeiwen.com/i1013424/854bd08e149183d3.png)
再次使用pod spec lint,成功:
![](https://img.haomeiwen.com/i1013424/8a53adf85bdfe46e.png)
2.9 向私有的spec Repo远程仓库中提交podspec
使用 pod repo push yourRepoName yourPodName.podspec 命令把私有库添加到私有repo中
注意的是:仍然在本项目的目录路径下进行操作:
![](https://img.haomeiwen.com/i1013424/07b445a1d3fe1faa.png)
前往文件夹 ~/.cocoapods/repos去查看WJSpec目录下的文件如下:
![](https://img.haomeiwen.com/i1013424/a7e59dfa976bed74.png)
远程WJSpec仓库与本地WJSpec仓库是同步的:
![](https://img.haomeiwen.com/i1013424/d985d1bedb27522d.png)
然后使用 pod search 'WJCategory' 就可以搜索出来了。
![](https://img.haomeiwen.com/i1013424/d8b99f161118f7bd.png)
到此,创建私有库算创建成功了。
2.10 使用自己创建的私有pod库
使用source 指定路径
source 'https://gitee.com/winjayq/WJSpec.git' #个人私有仓库
source 'https://github.com/CocoaPods/Specs.git' #github仓库
![](https://img.haomeiwen.com/i1013424/526822f64cdb31b5.png)
![](https://img.haomeiwen.com/i1013424/734d63fa7f718db8.png)