前言
折腾了两个多小时,踩了几个坑以后,终于是制作并完成了自己的第一个支持CocoaPods的开源库了。很简单的一个小工具,一个简易的弹窗。这个不是用view加在keyWindow的方式,采用的是控制器的方式,感兴趣的可以下载看下。这个不是这次的主题,所以不做说明 😎
创建流程
1 | - 创建一个工程 |
听起来好像是So~ easy,不过我花了两个小时搞定(之前也试过,失败了,后来没时间就没弄了)
这次我整理了下大概的坑,后续的步骤讲解中会说下这些:
1.托管的时候一定要加上tag
2.几个必填的关键项
3.一定要学会google~
O__O “…废话太多了,开始正文
一、创建工程并且将代码托管到GitHub
这个实现方式大家可以根据自己的习惯来,我一般用的是命令的方式写的;
- 在GitHub上创建仓库的流程这个大家搜下就可以
- 创建完以后 按照箭头指示获取链接
1 | - cd 工程路径(Tip:在终端里面输入cd 然后将文件夹拖进来就可以了) |
到这儿基本上第一步就完成了,不过最好刷新检查一下git仓库页面。需要注意的是查看一下tag有没有加上,成功的话会显示的,如下图:
二、创建、配置本地podspec文件
- 在终端中执行: pod spec create xxx(名字随便你取啦,一般是你库的名字) 完成以后会在对应的路径下生成一个扩展名为.podspec的文件
- 选择一个编辑器(我用的sublime)打开,会看到下面的样子,这里截取了一部分:
其中主要用到的内容包括
1 |
|
踩坑点:
- 名字没有保持一致
- 版本号不一致
- 发现上面的除了summary和description以外,其他的都是坑 Orz
当然这里是看不出来有没有错的~ 接下来这一步可以检查有没有错
- 终端输入 pod spec lint xxx.podspec
错误情况是这样:
恩~ 鲜红的文字,很强势!
其实呢主要看这一行就够了
这里是说远程仓库没有对应的tag ~改下就好了,按照之前加tag的步骤
然后重新执行
正确的是这样:
这里很容易出错,多查一查就搞定了,实在不行,runloop ~
成功以后就基本完成了,但是你发现你无法pod search。。。
原因嘛,引用下其他人说的:
以上的方法,使用pod search 是搜不到你的库的,因为这只是你私有的库而已。
在你本地,前往~/.cocoapods/repos/master/Specs,你会看到cocoapod所有公有的开源库配置,这个通过cocoapod官方在github的specs来管理,地址为https://github.com/CocoaPods/Specs 。
说到这里,你会想把这个库fork分支下来,clone到你本地,把自己的Test.podspec加入,然后add、commit、 push,最后在github上pull request来和官方的主分支合并,可是你会发现请求马上被自动关闭。
Why!!!
虽然一开始使用GitHub Pull Requests来整理所有公共pods效果很好。但是,随着Pod数量的增加,这个工作对于spec维护人员Keith Smiley来说变得十分繁杂。甚至一些没有通过$ pod lint的spec也被提交上来,造成repo无法build。
CocoaPods 0.33中加入了Trunk服务。CocoaPods Trunk服务的引入,解决了很多类似的问题。CocoaPods作为一个集中式的服务,使得分析和统计平台数据变得十分方便。下面来说说怎么分布CocoaPod。
所以还要搞事情。
- 要想使用Trunk服务,首先你需要注册自己的电脑。这很简单,只要你指明你的邮箱地址(spec文件中的)和名称即可。
pod trunk register xxxx@qq.com ‘xxx’ –description=’description’
- 完成之后,我们就可以开始 trunk push 了提交我们的podspec文件。
pod trunk push Test.podspec
剩下的就是等待了
当完成以后会显示这个
然后你可以创建一个工程,然后用pod试试。
完~