[iOS-Vendor] Making CocoaPods

http://product.hubspot.com/blog/architecting-a-large-ios-app-with-cocoapods

如果你希望将自己的代码以库的形式对外提供,或在团队内部使用,那么可以考虑创建自己的 Pods。

初始化项目

如果不是已有的项目,那么可以考虑使用 pod lib create [pod name] 命令来初始化项目,它会构建一个设计良好的类库工程目录并包含一些必要的文件。

pod lib create MyLibrary

通过参数--template-url=URL可以指定自己的模板 git 仓库。

开发

开发 Pod 时,可以在测试应用工程中,直接安装本地的 Pod 进行调试。此时 Pod 的 source 为指定的路径,而不是 podspec 文件的 source

pod 'Name', :path => '~/code/Pods/'

当 Pod 的工程提交到 git 仓库后,也可以从 git 仓库中安装 Pod

pod 'Name', :git => 'https://example.com/URL/to/repo/NAME.git'

当在开发中的 Pod 加入文件或者更新 podspec 后,需要重新执行pod installpod update命令。

发布

当开发和测试工作完成之后,就可以准备发布 Pod 了。在发布之前,首先要检查 Pod 的描述文件 [pod name].podspec 是否合法。可以使用命令pod lib lintpod spec lint,两个命令的区别是,pod lib lint只会在本地检查,而pod spec lint会检查需要联网的内容。例如,发布的 Pod 必须在 .podspec 文件中指定拉取代码的 tag,如果未指定,在pod lib lint检查时就会报错,但当 .podspec 文件指定的 tag 在远程仓库并不存在时,pod lib lint的验证结果会是合法的,而pod spec lint则可以检测到这种错误。所以在发布 Pod 前,最好可以通过pod spec lint命令的检查。

之后你可以选择将 Pod 提交到公共仓库供其他人使用,或者提交到你自己的私有仓库供内部使用。

开源 Pod

提交到开源仓库使用pod trunk命令,首先通过邮箱在当前设备上开启一个会话。之后根据提示需要在注册的邮箱中确认邮件。

pod trunk register [email protected] 'Orta Therox' --description='macbook air'

可以通过pod trunk me命令查看开启的会话。接着就可以将 Pod 提交到公共仓库。

pod trunk push [NAME.podspec]

Getting setup with Trunk

私有 Pod

在提交私有 Pod 前,首先你要有一个 git 仓库作为自己私有的 Pods spec 仓库。接着将这个仓库加入到 CocoaPods 中。

pod repo add REPO_NAME SOURCE_URL

另外,可以使用命令pod repo remove REPO_NAME来删除Pods spec 仓库。

然后使用以下命令将 Pod 加入到私有仓库中

pod repo push REPO_NAME SPEC_NAME.podspec

之后使用时,可以在 Podfile 中加入该仓库source 'URL_TO_REPOSITORY'

Private Pods

验证已发布的 Pod

发布 Pods 后,添加该 Pod 如果pod install失败,则需要更新 Specs 仓库。

pod repo update

如果pod search失败,则需要删除本地的搜索索引后重新执行搜索命令。

rm ~/Library/Caches/CocoaPods/search_index.json

版本号

一个标准的有意义的版本号,可以让使用者更容易的选择某一版本的类库,关于版本号的设置,可以参考这篇文章:语义化版本

LICENSE

提交到 CocoaPods 中的类库必须有 LICENSE,不同 LICENSE 的区别可以看这篇文章:如何选择开源许可证?,还有这篇:Pick a License, Any License。

文档

公共的类库当然要提供完善的文档以让别人知道如何使用它们。CocoaPods 可以通过 appledoc 解析并生成文档。所以,一定要在头文件中加上规范的文档注释。

.podspec

所有的 Pod 都会有其对应的 [pod name].podspec 文件,.podspec 文件描述了该 Pod 某一版本的所有信息,包括从哪里拉去代码,拉去哪些文件等。提交或更新一个 Pod 就是把这些信息提交到 Pods 仓库,然后安索引保存起来。通过命令pod lib create [pod name]初始化工程时,会同时创建 .podspec 模板,也可以通过命令pod spec create单独创建。

Specs and the Specs Repo
Podspec Syntax

资料

Making CocoaPods
Videos

你可能感兴趣的:([iOS-Vendor] Making CocoaPods)