iOS podspec - 给自己写的库添加pod支持
阅读本篇文章的前提是你已经了解了cocoapods的基本使用方法,如果你是一个iOS开发者,但是你不知道cocoapods,那么去看看巧神的博客反思一下吧
是的,现在网上关于这种的教程很多很多,但是每个人遇到的情况都会不太一样,我写这个一是为了积累,二是为了分享我在学习过程中的一些经验。还有,当然如果有很多人看了我的文章解决了自己的问题,那也是极好的。
好了,不扯淡了,让我们步入正题吧!
这里我用我自己写的一个模仿安卓Material Design的按钮作为一个例子戳这里,什么,你还没有demo?赶紧去写一个吧。
上传代码到Github
我们现将自己的demo上传到Github然后再克隆下来,这里因为我以前上传过,所以直接克隆下来了。别问我怎么上传,看这里。
创建主角:podspec文件
cd命令进入你项目的根目录后在终端输入一下命令:
$ pod spec create ZYCRippleButton
此时工程目录中会多出一个以.podspec为后缀的文件
ZYCRippleButton.podspec用编辑器打开生成的podspec文件,我用的是Atom
删除注释(了解更多详细信息),下面是我编辑后的文件截图 编辑后的podspec文件.png
根据s.后面的内容应该能懂是什么意思,所以我就不一一讲解了。这里要提下source_files这个字段,后面的内容是你要上传的文件,前面是文件路径,因为我这里只有两个文件所以在最后用了ZYCRippleButton.{h,m},如果你要上传的文件名称很多你也可以使用通配符"*"代替。编辑完后别忘了Command + s保存下。
这时我们可以验证下刚刚编辑的文件有没有出错,回到终端输入:
$ pod lib lint
这时出现了下面的情况,oh no 这是什么鬼
error但是好像提供了解决方案,我们照着做就行,回到终端输入:
$ pod lib lint --no-clean
如果输出类似这样的那么恭喜你已经成功一大半了
ZYCRipplrButton passed validation.
如果你运气不够好,还是有error,别着急,根据输出提示来,下面我列举一些常见的错误解决方案
$ pod lib lint --allow-warnings
如果错误提示不够明显我们可以用这条命令来查看更多消息
$ pod lib lint --verbose
上传podspec文件
在pofspec文件中需要指明tag,下面我们来打下tag,回到终端输入:
$ git tag -m"first release version " "0.0.1"
$ git push --tags
ok,最后用pod trunk命令上传,不过在此之前你需要进入注册下,回到终端输入:
$ pod trunk register 你的邮箱 '注册的名字' --description='描述'
回车后不久终端上会显示一段黄色的文字意思是你需要打开注册的那个邮箱点击一下链接才能完成注册,这是一般都会有的确认操作,确认下就好了,确认后我们在终端输入:
$ pod trunk me
如果看到如下图所示那么你注册成功了
注册成功.png最后我们执行如下命令即可:
$ pod trunk push ZYCRippleButton.podspec
这段命令执行需要一点时间,看你的网速了
最后,敲黑板划重点,分享下我踩过的坑
当我执行完上面的命令后输出如下图所示信息,嘴角微微一笑
success.png然而,当我满怀激动的心情输入
$ pod search ZYCRippleButton
按下回车,以为能看到我想要看到的信息的,然而
error.png我开始怀疑是不是命令打错了,again and again都要怀疑人生了,还是找不到,怎么办只好去问谷歌爸爸了,于是找到了一个解决方案:
$ pod setup
等setup完成后我又怀着激动地心情输入了search命令,果然是希望越大失望越大
failed again.png此时我怀疑是不是我上面什么地方弄错了,突然想到上面还有一个网址,于是打开那网址一看
项目网址
ok,是成功了的,于是我继续向谷歌爸爸寻求解决方案,终于找到了一个解决方案:
删除~/Library/Caches/CocoaPods目录下的search_index.json文件
原来在pod setup命令执行完成后会生成~/Library/Caches/CocoaPods/search_index.json文件,在终端输入删除该文件:
$ rm ~/Library/Caches/CocoaPods/search_index.json
然后再执行search命令,稍等片刻后就找到了
大功告成.png好了,以上就是怎么给自己的项目添加pod支持,其实很简单,按照教程一步步做一定是能成功的。
下面附上demo Github地址
点我下载(喜欢的话记得给我个star哦_)