建立远程cocoapods仓库

691 阅读3分钟

建立远程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一下。
如有疑问,或者不对不当的地方,感谢在评论中指出。
希望能帮助到你。