让你的库支持Cocoapods

我们先看一下Pod版本号:

1
2
pod --version 
1.0.1

这里主要介绍下流程。其实使自己的开源库支持Pod的过程并不复杂,主要是在自己的git库里创建一个.Podspec文件,里面配置一些参数,然后推送到远程的cocoapods,这样其他人就能用你的开源库拉。一般都使用gitHub作为自己的git库。

创建.Podspec文件

1.首先从github上clone你的项目文件到本地。(可以使用命令行,也可以使用图形界面SourseTree,为了方便截图,我使用SourseTree)

2.cd 到你的项目目录下用pod spec create NMAutoHeightTableCell命令创建.Podspec文件。

1
2
3
4
$ cd /Users/nuomi/NMKit/NMAutoHeightTableCell/lib 
$ pod spec create NMAutoHeightTableCell

Specification created at NMAutoHeightTableCell.podspec

于是我们的项目文件下就生成了NMAutoHeightTableCell.podspec文件。用文本编辑器或者vi开这个文件,去掉注释,大概就剩下这么几个部分。

如果我们的开源库依赖系统库怎么办?

1
2
3
4
5
# s.framework = 'SomeFramework'// 去掉#,设置依赖的系统库名称
# s.frameworks = 'SomeFramework', 'AnotherFramework'//设置多个系统库名称
# s.library = 'iconv'// 设置只依赖一个系统的library
# s.libraries = 'iconv', 'xml2' // 设置依赖多个系统的library
# s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }// 这里是工程配置,这样使用者就不需要手动处理,由pod自动处理了。

如果我们的开源库依赖系统库怎么办?

1
s.dependency 'JSONKit', '~> 1.4'//设置我们的开源库依赖哪些第三方库和依赖的版本号。

好了,如果这里都填好了,可以先测一下本地的.Podspec文件是否填对。

检验.Podspec文件

cd 到本地开源库项目的.Podspec文件目录下,使用pod lib lint命令来尝试编译,如果要忽略警告,可以在后面添上–allow-warnings,如果成功会显示passed validation

如果有错也没事,根据错误提示慢慢改.Podspec文件,好了再编译,直到成功为止。

上传本地文件到gitHub

还记得我们.Podspec文件文件里用了:tag => “0.0.1”这句话么,这里就要用到了。首先用SourceTree切出一个分支,名字命名为“0.0.1”,这里一定要对上,否则后面会找不到。

推送到远程的cocoapods

回到终端,通过 pod trunk push 库名.podspec来推送到远程的cocoapods.

记得第一次推送到cocoapods会让你填一个邮箱,然后往你邮箱你发一封验证邮件。由于当时没截图。。这里就放上验证邮件的截图吧。。

一切顺利的话就能用Pod Search搜索你的库啦。

咦,小伙伴的电脑搜不到怎么办。。试着pod repo update一下就ok~