让自己写的框架支持CocoaPods

1. 将框架源码提交到 GitHub

想要添加 CocoaPods 支持必须将源码提交至 GitHub ,至于怎么提交相信大家都会,就不重复了。

注意:在创建 GitHub 仓库的时候,下面的 License 许可证 必须选择 MIT License ,不能为 None ,否则验证会报错,在下面会用到。

MIT License

下图是我的项目目录结构,上面选择了 MIT License 后,项目目录中会多一个 LICENSE的文件,没有就按照上面说的重新建一下仓库,这个文件必须要有,GZZEditView 目录中的文件就是我要添加 CocoaPods 支持的文件。

目录结构

2. 创建 podspec 文件

  • 用终端 cd 到你的项目目录并执行以下命令:( GZZEditView 的位置换成你框架的名称,也是之后 pod search 的名称)
pod spec create GZZEditView
  • 这时候,项目目录中会生成一个 .podspec 的文件。

.podspec 文件

3. 编辑 podspec 文件

这一步非常重要,能不能验证通过就主要看这个文件的内容编辑是否正确了,作者就在这里耗了很久,总是验证报错。

  • 用编辑器打开 .podspec 的文件,将内容全部删除,然后将以下内容复制进去,这里只用到一部分必须的字段,如果需要设置更多字段,点击这里
Pod::Spec.new do |s|

    s.name         = "GZZEditView"

    s.version      = "1.0.0"

    s.ios.deployment_target = '8.0'

    s.summary      = "非常简单易用的轻量级编辑框。"

    s.homepage     = "https://github.com/Jonzzs/GZZEditView"

    s.license              = { :type => "MIT", :file => "LICENSE" }

    s.author             = { "Jonzzs" => "292710547@qq.com" }

    s.social_media_url   = "http://weibo.com/Jonzzs"

    s.source       = { :git => "https://github.com/Jonzzs/GZZEditView.git", :tag => s.version }

    s.source_files  = "GZZEditView/*.{h,m}"

    s.requires_arc = true

end
  • 开始修改其中的内容,下面讲解一下各字段的含义,xxx 处就是需要修改的内容。
s.name = "xxx" :框架名称,也是 pod search 搜索的关键词,并且一定要和 .podspec 文件的名称一样,否则验证报错。
s.version = "xxx" :框架版本号。
s.ios.deployment_target = 'xxx' :框架支持的 iOS 最低版本。
s.summary = "xxx" : pod search 搜索框架时,显示的框架简介。
s.homepage = "xxx" :GitHub 项目主页地址.
s.license = { :type => "MIT", :file => "LICENSE" } :许可证,这里就这样写不用修改。
s.author = { "xxx" => "xxx" } :作者,前面填你的英文名,后面填你的个人邮箱。
s.social_media_url = "xxx" :社交网址,我填的是我的个人微博地址。
s.source = { :git => "xxx", :tag => s.version } :GitHub 项目的仓库地址,这里只支持 HTTPS ,不支持 SSH 。
s.source_files = "xxx/*.{h,m}" :要添加 CocoaPods 支持的文件路径。

两种写法:
s.source_files = "xxx/*"
s.source_files = "xxx/*.{h,m}"

"*":表示匹配所有文件
"*.{h,m}":表示匹配所有以 .h.m 结尾的文件
"**":表示匹配所有子目录
s.requires_arc = true :项目是否支持ARC

4. 验证 podspec 文件

podspec 文件修完完成以后,command + s 保存一下,接下来开始验证。

  • 依旧用终端 cd 到你的项目目录,刚才终端没关的话,就直接执行以下命令:
pod lib lint
  • 如果是如下图提示只有 warning 错误,并提示 but you can use '--allow-warnings' to ignore them 的话,就执行以下命令忽略 warning 来验证:
pod lib lint --allow-warnings

验证 podspec 文件失败
  • 如果提示有 error 错误的话,就必须按照提示将错误解决掉,大多数都是 podspec文件信息编辑有误,解决完后重新进行验证,如果提示信息不足,可以执行以下命令以获取更多错误信息:
pod lib lint --verbose
  • 如果出现如下图的 GZZEditView passed validation. 就是验证成功了。

验证 podspec 文件成功

5. 给项目打上 tag 版本

因为 CocoaPods 是依赖项目的 tag 版本的,所以必须打上 tag 版本。

  • podspec 文件验证成功后,先将改动后的文件 commit 提交,接着 push 推送到 GitHub
  • 然后执行以下命令打上 tag 版本,版本名必须要和之前podspec 文件中的 s.version一致。
git tag "1.0.0" // 为 git 提交打上 tag
git push --tags // 将 tag 推送到远程仓库

6. 注册 trunk

注意: trunk 需要 CocoaPods 0.33 版本以上,如果版本太低,就先把 CocoaPods 版本升级一下,具体怎么升级这里就不说了。

  • 已经注册过 trunk 的就不需要注册了,执行以下命令查看自己有没有注册过:
pod trunk me
  • 出现以下注册信息就代表已经注册过 trunk 了。

trunk 注册信息
  • 如果没有就执行以下命令来注册 trunk ,前面填写你的个人邮箱地址,后面填写你的英文名字。
pod trunk register xxx "xxx"

例如:

pod trunk register 292710547@qq.com "Jonzzs"
  • 执行注册命令完成之后,会验证注册邮箱,给你填的邮箱地址发送一个邮件,进入邮件打开里面的链接,弹出网页后就注册成功了。

注册邮箱验证

7. 发布到 CocoaPods

依旧先 cd 到你的项目目录,接着要注意的是,发布时会再次验证你的 podspec 文件,如果刚才验证时使用了 --allow-warnings ,那么发布的时候也应该使用,否则出现相同的报错。

  • 如果刚才是用 pod lib lint 验证成功的,就执行以下命令发布:
pod trunk push GZZEditView.podspec
  • 如果刚才是用 pod lib lint --allow-warnings 验证成功的,就执行以下命令发布:
pod trunk push GZZEditView.podspec --allow-warnings

注意: GZZEditView 的位置换成你框架的名称。

  • 最后出现如下图所示,就表示发布成功了。

发布成功

8. 赶快验证一下吧

  • 执行以下命令搜索你的 pods 库:
pod search GZZEditView
  • 不出意外的话就会显示出你刚才发布的框架:

GZZEditView

好了,大功告成,其实过程挺简单的,只要 podspec 文件编辑正确,就会少走很多坑,有不足的地方可以提出来。

以后再次更新框架的话,只需要把你的项目再打一个 tag 版本,然后修改 podspec 文件中的 s.version 版本,接着再次提交到 CocoaPods 就可以了。

0

这篇文章还没有评论

发表评论