原文发布于我的博客:http://blog.zyliu.com/create-and-publish-cocoapods-spec/
随着对 CocoaPods 越来越多的依赖,我们也可以尝试把自己的库发布到它上面。本文简要介绍了如何制作并发布自己的 CocoaPods spec。
托管代码
将工程文件提交到代码托管平台如 GitHub,同时打好 tag,比如第一版是 1.0.0
,则在 master
分支打一个名为 1.0.0
的 tag。
一般这里该怎么办都很清楚,我就不赘述了。
制作并验证 podspec
首先在自己的工程下使用初始化一个新的 spec,其中 [NAME]
即为库的名称。
$ pod spec create [NAME]
之后在该目录下会生成一个 [NAME.podspec]
文件,该文件是 Ruby 编写的,打开并编辑这个文件,把需要填写的基本内容填好如下
Pod::Spec.new do |s|
s.name = "SHPAlertView"
s.version = "1.0.0"
s.summary = "A UIAlertView with block support."
s.homepage = "https://github.com/tzuyangliu/SHPAlertView"
s.license = "MIT"
s.author = { "刘子洋" => "me@zyliu.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/tzuyangliu/SHPAlertView.git", :tag => "1.0.0" }
s.source_files = "SHPAlertView", "SHPAlertView/*.{h,m}"
s.frameworks = "Foundation", "UIKit"
end
其中 s.source
中的 tag 即提交代码的时候打的 tag。
在这里我省略掉了很多注释和不常用的属性,如果需要详细文档请移步 Specs and the Specs Repo。
保存后进行验证,这一步是无法跳过的,也是为了保证上传的 spec 可用:
$ pod spec lint [NAME]
如果有错误会有提示,像这样就算成功了
$ pod spec lint SHPAlertView.podspec
-> SHPAlertView (1.0.0)
Analyzed 1 podspec.
SHPAlertView.podspec passed validation.
发布
首先注册一个 CocoaPods Trunk 账户,注意将下面的邮箱、姓名与描述替换为自己的信息。
$ pod trunk register sheep@cocoapods.org 'Sheep' --description='macbook pro'
完成后使用 pod trunk me
检查是否成功,成功后开始上传:
如果是公开的使用
$ pod trunk push [NAME.podspec]
如果私有则使用
$ pod repo push REPO [NAME.podspec]
看到类似如下的信息,则上传并发布成功
$ pod trunk push SHPAlertView.podspec
Updating spec repo `master`
Validating podspec
-> SHPAlertView (1.0.0)
Updating spec repo `master`
- Data URL: https://raw.githubusercontent.com/CocoaPods/Specs/2879acf97fcf49a1355c9301f62b96dbd913d702/Specs/SHPAlertView/1.0.0/SHPAlertView.podspec.json
- Log messages:
- November 23rd, 13:26: Push for `SHPAlertView 1.0.0' initiated.
- November 23rd, 13:26: Push for `SHPAlertView 1.0.0' has been pushed
(1.222696649 s).
可以尝试使用 pod search [NAME]
看看你的库是不是已经出现在里面啦~