1.场景
在开发中我们经常会用到一些pod库,如AFNetworking,SDWebImage等,有时候为了组件化管理一个功能,同时为了方便再次使用,我们也可以创建一个pod库开进行管理和迭代。
2.创建远端仓库
在github上面创建一个新的Repositories,可以选择公开或者私有,这里我使用的是公开的。
3.创建pod库
在本地创建一个pod库,关联到我们的远程仓库
在本地仓库路径内,使用命令
$ pod spec create QMLibraryPodManger
“QMLibraryPodManger” 是你的库的名称
在QMLibraryPodManger.podspec文件同级目录创建QMLibraryPodManger文件夹
里面放入你的库所用到的文件
到这里,我们的pod库就已经创建完成了,目录结构如下
注意:QMLibraryPodManger.podspec同级目录需要有LICENSE和README.md文件,以方便我们提交到github和提交到CocoaPods
4.编写功能文件
创建你自己的功能文件,放入上图中的QMLibraryPodManger文件夹中,此处是我测试用的文件请根据自己需要编辑功能文件。
5.编辑podspec
打开QMLibraryPodManger.podspec进行编辑,我使用的是Subline Text打开的。也可以直接使用记事本打开。编辑格式如下
5.提交远程仓库并设置好tag
依次执行以下命令
$ git add .
$ git commit -m "你的更新说明"
//tag值要和.podspce里的version相同,并且必须设置
$ git tag '0.1.0'
$ git push --tags
$ git push origin master
6.发布pod库
先验证一下podspec是否有效
$ pod lib lint QMLibraryPodManger.podspec
如上图,提示QMLibraryPodManger passed validation.则为有效。
7.提交到podspec到CocoaPods
$ pod trunk push QMLibraryPodManger.podspec
注意:如果你是第一次提交 需要执行命令去注册 CocoaPods
$ pod trunk register 邮箱 '昵称' --description=' 这里写描述'
可能会报错
ERROR | iOS file patterns: The `source_files` pattern did not match any file.
出现类似这种错误,是因为你的CocoaPods对应的目录中没有此文件,可以手动复制一份。
我的路径是:
Users/icepoint/Library/Caches/CocoaPods/Pods/External/QMLibraryPodManger/c938ddbe62d021c43d2c2fd62b943f76-995bf
其中后面的c938ddbe62d021c43d2c2fd62b943f76-995bf随机生成的,可自行进入相应目录查看
然后再次执行命令
$ pod trunk push QMLibraryPodManger.podspec
发布成功
8.搜索一下你的库,然后就能正常使用啦
注意:如果没有,可以尝试 pod repo update 一下,再pod install