制作并发布 CocoaPods 库

原文发布于我的博客: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       = { "刘子洋" => "[email protected]" }
  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.

发布

官方文档:Getting setup with Trunk

首先注册一个 CocoaPods Trunk 账户,注意将下面的邮箱、姓名与描述替换为自己的信息。

$ pod trunk register [email protected] '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] 看看你的库是不是已经出现在里面啦~

你可能感兴趣的:(制作并发布 CocoaPods 库)