将库发布至CocoaPods
在iOS开发者中,最流行的第三方依赖管理工具应该就是CocoaPods了,这是一个可以自动管理库之间依赖的工具,让开发者使用第三方库处理依赖非常简单。
当我们自己造了轮子,想发布到CocoaPods上方便他人使用就是我们这篇文章的主题。
注册trunk
注册
pod trunk register talisk@talisk.cn 'talisk'
这一步向Pod的服务器注册了trunk,完成后他告诉你去邮箱点击验证邮件,验证邮件内容是这样的:
[CocoaPods] Confirm your registration.
no-reply 发给 孙恺
2016/1/14 20:58 详细信息
Hi talisk,
Please confirm your registration with CocoaPods by clicking the following link:
https://trunk.cocoapods.org/sessions/verify/03320a86
If you did not request this you do not need to take any further action.
Kind regards, the CocoaPods team
验证邮箱
点击验证地址,然后在终端里验证是否成功注册:
注册成功
pod trunk me
如果成功注册,会收到你的注册信息:
|
|
看到这样婶的结果,就说明注册成功了。
配置podspec
podspec文件就是用来告诉CocoaPods,你的库的详细信息,作者、版本、依赖等等。这里存了所有支持CocoaPods的库的所有版本的podspec文件。
创建一个podspec文件
在终端中定位到你的库的位置,输入pod spec create <项目名>
,此时CocoaPods会自动给你创建一个以你的项目名为名称的podspec文件,这个文件中内容很多,其实就是CocoaPods给你提前写好的模板,模板里好多注(废)释(话),其实我们真正用到的内容并不多。
编辑podspec文件
podspec文件里井号开头的都是注释,从do
开始到`end部分都是文件主体。
s.name
库的名称。s.version
库的版本。s.summary
库的概述,基本就是一句话说清楚是干嘛的库。- 可选
s.description
对库的介绍,这个参数之前有一段注释,大概的意思就是说description用于生成搜索结果的tag。 s.homepage
项目主页。- 可选
s.screenshots
截图,是几个图片URL的字符串,中间用逗号分割。 s.license
库所遵循的协议,要指明许可证文件,这个一般GitHub上都会有模板,当然也可以自己写。s.author
作者信息,可以只写作者的名字或者名字邮箱都写。- 可选
s.social_media_url
,社交媒体主页,可以是推特、微博这种。 s.platform
库所针对的平台,举例比如s.platform = :ios, "7.0"
- 如果是针对多平台的,可以这么写:
s.watchos.deployment_target = "2.0"
,watchOS
可以替换为iOS
、osx
、tvos
。
- 如果是针对多平台的,可以这么写:
s.source
指明库的位置,支持git、hg、bzr、svn、http地址。s.source_files
写清楚源文件的位置,因为git上往往上传的是包括example的项目目录,这里则要指出库文件的位置。- 可选
s.exclude_files
排除之外的文件路径。 - 可选
s.public_header_files
公用头文件的路径。 - 可选资源文件,这个库需要用到的资源列表,这些资源会通过一个phase script拷贝到target目录中,没在这个列表里的文件就不会拷贝进去。另外,就不要拷贝没必要的文件了,比如说是测试、例子、文档等等。
s.resource
指定资源文件s.resources
指定资源文件们的路径s.preserve_paths
保护文件的路径
- 可选链接这个库需要用到的框架或者库,这个不同于dependency依赖,因为依赖必须同样是CocoaPods上的资源。
s.framework
需要用到的框架。s.frameworks
需要用到的框架们,中间用逗号分隔。s.library
需要用到的库和s.libraries
需要用到的库们。
- 可选项目设置,包括是否支持ARC、头文件搜索路径、项目依赖等等。
s.requires_arc
为ture说明需要ARC环境,否则则为MRC。s.xcconfig
一些其他对Xcode的设置,比如头文件搜索路径。s.dependency
项目依赖和版本,比如"AFNetworking", "~>2.0"
我举个例子我这里的配置:
|
|
上传podspec
在这步骤之前,建议先把项目Push到GitHub上。
添加版本分支
终端里执行:
|
|
上传podspec
|
|
检查是否成功
由于上传后的库文件需要经过审核才能被看到,那么可能会经过一段时间的等待,而且你本机其实是有一个库的,我们如果执行pod search
的时候其实先在本机的库里查询,有可能这时告诉我们查询不到,所以我们需要先更新下本机的库,用命令pod setup
来执行这一步操作,由于一些众所周知的位置原因,这一步的速度非常慢,建议挂代理。
完事之后,可以再用pod search
查询,如果能够查到自己的库说明大功告成。