简介
这篇文章记录了一个公共 Pod 库 RFSegmentView的创建过程
注册 CocoaPods 账号
想要创建一个开源 pod 库, 首先我们需要注册 CocoaPods, 这里使用 trunk 方式, 那么只需要在终端执行(这里默认你已经安装好 CocoaPods 环境):
1 | pod trunk register 邮箱地址 '用户名' --verbose |
这里我们一般使用 github 邮箱和用户名, 然后在你的邮箱中会收到确认邮件,下面是确认邮件的内容:
在浏览器中点击链接确认即注册成功, 成功之后可以终端执行:
1 | pod trunk me |
通过上面的命令查看注册信息,里面会展示该账号下的所有的 Pod 库,可以用此方式查看自己发布过的 Pods
1 | ➜ myBlog git:(master) ✗ pod trunk me |
创建共享库文件并上传到公有仓库
共享库需要三个必不可少的部分:
共享文件夹
(文件夹存放着你要共享的内容, 也就是其他人通过 pod 安装得到的文件, .podspec 文件中的 source_files 需要指定此文件路径及文件类型);LICENSE文件
(默认一般选择 MIT);库名.podspec
(本库的各项信息描述, 需要提交给 CocoaPods, pod 通过这个文件查找到你共享的库).
如果没有 podspec
文件可以用下面的命令,初始化
1 | pod lib create 库名 |
编辑.podspec 文件
以 RFSegmentView.podspec
为例:
1 | Pod::Spec.new do |spec| |
编写完成后, 我们需要验证.podspec 文件的合法性, 这里需要终端 cd 到.podspec 文件所在文件夹, 执行:
1 | pod lib lint RFSegmentView.podspec |
如有警告或者错误请重新检查你的编写正确性, 如果没有问题会出现
1 | RFSegmentView (1.3.0) |
打 tag,发布新版本
一切准备就绪后, 我们需要在你的 git 仓库里面存在一个与.podspec 文件中一致的版本, 这里你可以在你的 git 仓库中的准备一个版本, 也可以在当前文件夹下使用终端命令:
1 | git tag -m 'first release' '1.3.0' |
成功之后即可在你分支里面看到这个 tag 的版本.
发布库描述文件
下面我们需要发布自己的库描述文件 podspec 给 cocoapods
同样在这个文件夹下, 终端执行:
1 | pod trunk push RFSegmentView.podspec |
将你的库文件.podspec 文件提交到公有的 specs 上面, 这一步做的操作是验证你的 podspec 文件是否合法+提交到 specs 中+将上传的 podspec 文件转成 json 格式文件,如果重复提交会出现下面的信息:
1 | [!] Unable to accept duplicate entry for: RFSegmentView (1.3.0) |
为了测试将 RFSegmentView.podspec 里面的 spec.version 修改成 1.3.1,成功后会出现 Congrats 信息:
1 | ➜ RFSegmentView git:(master) pod trunk push RFSegmentView.podspec |
查找和使用新创建的库
成功后需要等待的时间不定, 目前一般比较快, 一般使用 pod setup 和 pod search 查看是否已经可以使用, 如果
pod search RFSegmentView
一直搜索不到,尝试删除 pod setup
成功后生成的 ~/Library/Caches/CocoaPods/search_index.json
文件, 该文是用来查找的索引文件,
终端输入:
1 | rm ~/Library/Caches/CocoaPods/search_index.json |
删除成功后再执行: pod search 库名
, 等待输出: Creating search index for spec repo 'master'.. Done!
稍等片刻就会出现你想要的结果,如果还是没有结果需要等待 pod 同步,过一段时间再来尝试。
更新维护 podspec
如果有错误或者需要迭代版本,修改工程文件后推送到远端仓库后, 需要修改 podspec 中的版本号, 并重新打 tag 上传, 再进行新一轮的验证和发布。