概念理解
私有索引库
私有索引库的作用是存放.podSpec文件的。当你使用pod search AFN
时,pod会在本地的索引库中进行搜索。
私有索引库分为本地私有索引库和远程私有索引库,它们是相互对应的。
-
本地私有索引库
其中master
是 CocoaPods 的本地索引库,他是公有的.只要安装过CocoaPods的电脑,都会有这么一个索引库。它对应CocoaPods的远程索引库。
其中ZNBRepo
是本地私有索引库
接下来让我们创建远程私有索引库,并且将远程私有索引库 添加到本地
-
远程私有索引库
我在码云上创建了一个远程库,用来做远程私有索引库
- 复制远程私有索引库的地址
https://gitee.com/znbmm/ZNBRepo.git
2.打开终端,将远程私有库关联到本地
pod repo add ZNBRepo https://gitee.com/znbmm/ZNBRepo.git
3.就会发现将远程私有库ZNBRepo
添加到本地了
私有代码仓库
私有代码仓库也分为本地私有代码库和远程私有代码库,它们也是相互对应的。
-
本地私有代码仓库
新建一个名为组件化
的文件夹
cd /Users/wjwl/Desktop/组件化
pod lib create ZNBTool
按照提示完成所有配置后会得到一个模板文件
将自己抽出来的组件放到Classes文件夹下
-
远程私有代码仓库
1.在码云上创建一个名字为ZNBTool
的代码仓库
2.修改模板项目ZNBTool
中的ZNBTool.podspec
文件
3.提交本地私有模板组件代码到远程私有代码仓库,并打上tag
标签
cd /Users/wjwl/Desktop/组件化/ZNBTool
git add .
git commit -m '创建了一个组件'
git tag '0.1.0'
这个tag 跟 spec 文件中version 一致
git remote add origin <#远程代码仓库地址#>
git push -u origin master
git push --tag
4.对文件进行本地验证和远程验证
cd /Users/wjwl/Desktop/组件化/ZNBTool
pod lib lint --private
pod spec lint --private
5.将验证通过的.podSpec
文件加入到本地私有索引库,并上传到远程私有索引库
pod repo push ZNBRepo ZNBTool.podspec
6.在ZNBRepo
路径下就会有ZNBTool
,并带有版本号
7.查看远程私有索引库你会发现ZNBTool
已经躺在里面了
8.使用终端搜索 ZNBTool
如果搜索不到的话可以尝试
pod setup
还是搜不到的话
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup
使用私有库组件
在Podfile 顶部添加source
source 'https://gitee.com/znbmm/ZNBRepo.git'
更新组件
修改ZNBTool.podspec
中的version
cd /Users/wjwl/Desktop/组件化/ZNBTool
git add .
git commit -m '创建了一个组件'
git tag '0.2.0'
这个tag 跟 spec 文件中version 一致
git push -u -origin master
git push --tag
pod lib lint --private
pod spec lint --private
pod repo push ZNBRepo ZNBTool.podspec
如果 执行pod repo push ZNBRepo ZNBTool.podspec
报错The repo 'xxxxx' at ../../../../../.cocoapods/repos/xxxx is not clean
可以尝试
pod repo remove <#远程私有索引库名.ex:ZNBRepo#>
再次添加
pod repo add <#远程私有索引库名.ex:ZNBRepo#> <#远程私有索引库地址#>
完成