建立远程cocoapods仓库
前言:在学习组件化,建立自己的工具库等情况下往往需要在cocoapods建立远程库,方便自己或者他人的其他项目使用。并且感觉要比拷贝代码文件更高大上。以下描述都是在已经注册好trunk账号的前提下进行的,如果你还没有注册,可以参考一下其他作者的文章(下面有链接)。
1、第一步-创建git仓库
创建仓库名:GNGcdTimer(以下均以次仓库名列举)
Description:根据个人情况随意填写就行。
勾选README主要目的是为了做文档记录。
下面的LICENSE需要选择MIT LICENSE,然后创建仓库。
2、第二步-构建项目
将项目clone到本地,将自己想要上传的开源文件放到clone下来的目录下面,并创建podspec文件。
终端进入到当前目录
pod spec create GNGcdTimer
创建podspec文件后,手动打开编辑
注:当前目录下需要pod的文件都是GN开头的文件:GNGcdTimer.h / .m 和GNThreadSafeAccessor.h / .m
关键的一些配置代码上面有所标注。
spec.subspec 'GNGcdTimer' do |ss|
ss.ios.deployment_target = '8.0'
ss.source_files = 'GN*.h','GN*.m'
end
这段代码的意思是pod之后创建的GNGcdTimer文件夹下再创建GNGcdTimer文件夹,并将GN前缀的.h 和 .m文件放在当前文件夹下。
pod之后的效果是这样的。
3、第三步-上传到cocoapod
好了,podspec文件代码已经编辑好,之后我们需要的就是上传到远程的cocoapod仓库。
离成功只剩下最后一些命令行的操作了:
3.1 提交本地修改到git仓库
git add .
git commit -m “commit”
git push origin master
3.2 打tag
回归到第二节中的podspec代码中,之前说的version在这里就比较关键了,能否成功push到远程cocoapod仓库,这里必不可少。
git tag 1.0.2
git push --tags
3.3 验证podspec文件
在验证之前需要创建trunk账号。
请参考其他作者的文章:trunk账号创建链接
建议第一次提交之前都进行一下验证,如果成功提交一次之后,后续可以不再验证直接提交也行,毕竟验证和提交还是需要花费比较长的时间的。
pod spec lint GNGcdTimer.podspec --verbose --use-libraries --allow-warnings
出现上图所示,则表示已经成功了。
3.4 提交podspec文件
验证如果成功之后,直接提交就行了。不过可能刚开始或多或少可能会有一些失败,大部分情况都是因为podspec文件中的语法有错,具体需要看日志的error信息,然后再根据不同情况来做修改。
pod trunk push GNGcdTimer.podspec --allow-warnings
出现以上的提示,恭喜你。已经成功推送上远程仓库了!
3.5 移除某版本远程cocoapod仓库
pod trunk delete GNGcdTimer 1.0.2
同时如果你还需要上传该版本的pod需要移除git仓库的tag。
git tag -d 1.0.2 # 删除本地标签
git push origin --delete tag 1.0.2 # 删除远程标签
删除之后,需要从3.1的步骤重新开始,也需要重新推送tag标签。
3.6 更新本地cocoapod缓存
成功推送后别高兴的太早,由于远程仓库更新了,但是哥们你的本地仓库还是没有远程podspec文件,所以没办法马上pod下来你刚才上传的pod库。
pod update --verbose
更新一下本地文件就行了。更新成功之后你就能成功pod你刚才上传的库了。到此基本结束。
pod cache clean GNGcdTimer
如果还不行,试一试clean一下。
如有疑问,或者不对不当的地方,感谢在评论中指出。
希望能帮助到你。