一、 首先简单了解下cocoapods的机制
cocoapods有个远程索引库,索引库下放着框架的描述信息:框架的名称,框架的版本号,框架的描述文件(.spec),开发者上传的代码都是位于索引库的远程地址下。当你进行pod初始化(pod setup)时,会把远程索引库下载到本地,即生成一个本地的索引库。当我们搜索某个框架时(pod search xxx),其实在本地库里索引,此时真正的内部操作是检索一个检索文件(默认生成的文件名称叫做search_index.json, 文件默认是被隐藏起来的,可以使用指令defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder打开隐藏文件,打开文件的路径为:/Users/admin/Library/Caches/CocoaPods),最后通过pod install 安装你所需的框架。
二、Cocoapods创建私有库创建的过程
1.本地编写好你所需上传的框架。
2.在github上新建一个仓库
这时我们的git远程仓库就建立好了
3.把写好的框架传到git远程仓库
如果你的git仓库里有文件,比如 LICENSE 文件,这时必须先pull拉取下:
git pull origin master
然后执行推到远端:
git push origin master
这时说明已经传成功了, 但是此时我们的框架仅仅被git托管而已,我们并不能通过pod search xx来搜索到,此时我们就必须创建描述文件(后缀为.podspec)。
三、创建描述文件
pod spec create podSacrifice
描述文件创建完成后必须修改里面的内容,这些都是我们检索库的关键字:
pod trunk register xxxx@qq.com '你的昵称 --verbose
这时在邮箱里验证下,然后推倒远端,在推之前必须打个标签,这个标签跟你的版本号一致,别人就跟你的tag来找到对应的版本号:
git tag
git tag '0.0.1'
git push --tags
提交完之后 可以用下面的命令行验证
pod spec lint 验证远程(这个其实是本地与远程一起验证,可能会出现一系列的报错,一一解决就好)
pod lib lint 验证本地
pod trunk push podSacrifice.podspec
至此说明你已经成功上传的你框架了!但是此时你用pod search xxx可能还是搜索不到,你的私有库,
错误信息为:[!] Unable to find a pod with name, author, summary, or description matching ‘xxxx’
解决方案为:
我们pod setup
成功后会生成~/Library/Caches/CocoaPods/search_index.json
文件。- 终端输入
rm ~/Library/Caches/CocoaPods/search_index.json
- 删除成功后再执行
pod search xxxx
- 此时终端输出:
Creating search index for spec repo 'master'.. Done!
,稍等片刻就会有出现相关类库。