说实在话,类似的教程网上很多,基本可以满足大多数人零基础发布 CocoaPods,但是其中可能会遇到一些问题,只有亲自尝试过才知道。
准备工作
1. clone 远程仓库到本地
git clone 你的仓库链接 |
2. 注册 trunk
注册的命令
pod trunk register 你的邮箱 你的用户名 |
记得去邮箱里验证,然后可以输入以下命令查看个人信息
pod trunk me |
步骤
1. 创建 .podspec
pod spec create AXKit |
2. 修改 .podspec
并验证
有很多类似的教程,可以参考。
一个小技巧:你可以去GItHub搜索一些热门的第三方库,然后点击查看这些大牛的
.podspec
是怎么写的。
传送门:YYKit的podspec、ReactiveObjC的podspec、BlocksKit的podspec
最容易出错的地方就是资源路径
s.source_files = "AXKit/**/*.{h,m}" |
常见写法
"Directory1/*" 表示匹配所有文件 |
s.source 常见写法
# 推荐写法:与版本号绑定 |
tag => s.version 表示将这个 Pod 版本与 Git 仓库中相同版本的 comit 绑定
注意
如果仓库中对应的tag是 “v1.0.0”
这样以字母开头的,可以在 #{s.version}
前面加上对应的字母。commit => "68defea" 表示将这个 Pod 版本与 Git 仓库中某个 commit 绑定
验证
pod spec lint AXKit.podspec |
3. 上传到远程仓库
修改 .podspec
时指定的版本号,如 0.0.1
。那么远程仓库中必须始终存在这个版本的 branch
或 tag
才能够下载。建议使用 tag。s.source
中的 tag 需要与远程仓库中的 tag 对应起来。
s.version = "0.0.1" |
这里指向的是 "v0.0.1"
这个分支,因为分支我们用完之后习惯把它删掉,所以这里也可以指向 tag,也就是说打一个 "v0.0.1"
的 tag 并推送到远程就可以了。
git tag v0.0.1 |
这样做的好处就是删掉当前分支不影响 CocoaPods 中指向的仓库源码。
4. 发布到 CocoaPods
pod trunk push AXKit.podspec |
n. 删除一个 podspec 版本
删除的命令是:
pod trunk delete 项目名 版本号 |
官方建议使用 deprecate
来弃用
pod trunk deprecate 项目名 |
这两种方法执行完有很大几率会出现一串很长很长的错误,不要着急,这实际上这是一个 html。把它保存到一个 html 文件中,打开,是个404错误页,原因众所周知。
删除之后立即搜索还是能搜到的,因为有一定的延迟,可能要半个小时才能更新。
pod trunk 命令
在终端输入
pod trunk --help |
可以查看帮助
使用脚本
没必要每次都重复每个步骤,如果你已经发布过一个,可以省去注册的步骤,直接把已经发不过的 podspec 复制一份,改一下仓库模块名,验证通过就可以发布了。
我写了一个便于发布更新的脚本,把脚本放在与 podspec 同级目录下,当你更新了项目之后,如果需要更新到 cocoapods,可以执行此脚本。流程是:
输入版本号 -> commit、push tag -> pod spec lint -> 询问是否发布(y/n) -> 发布(y) |
脚本的项目在这里:https://github.com/xaoxuu/podspec.sh