将组件上传到github后,接下来就是需要支持CocoaPods,这样就能让更多人更方便去使用。接下来以我的开源项目YKLaunchAd为例。
### 1. cd进入项目目录,然后输入
> git tag '1.0.0'
> git push --tags
> git push origin master
给项目加入一个tag,以便pod能自动识别,这里的版本号和后面.podspec文件里的s.version一样。
### 2. 注册trunk账号
如果之前没有注册,第一步要先注册
> pod trunk register userEmail 'userName' --description='macbook pro'
如果成功,在控制台会显示[!] Please verify the session by clicking the link in the verification email that has been sent to [email protected]。这里我用[email protected]的邮箱提示成功,但始终没收到邮件。收到邮件后进入链接页面激活。
激活后在控制台使用`pod trunk me`查询注册信息
如果你想添加其他维护者
> pod trunk add -owner ARAnalytics [email protected]
### 3. 生成.podspec描述文件
> $ pod spec create YKLaunchAd
会生成一个YKLaunchAd.podspec文件,你也可以使用vim创建,只是没有默认文本,或者对其它类似成熟开源项目的.podspec文件修改。
### 4. 编辑.podspec
创建好的 .podspec 包含大量的注释说明了每个参数的含义及用法。如果想详细了解可以仔细阅读。有些用不到的就删除掉。下面是我的.podspec文件
```
Pod::Spec.new do |s|
s.name = "YKLaunchAd"
s.version = "1.0.0"
s.summary = "几行代码接入启动页广告,自带图片下载、缓存功能,无任何第三方依赖,支持GIF、自定义广告frame,支持自定义广告结束转场动画,支持iPhone/iPad等功能"
s.homepage = "https://github.com/jinstar520/YKLaunchAdDemo"
s.license = { :type => "MIT", :file => "LICENSE" }
s.authors = { "jinstar520" => "[email protected]"}
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/jinstar520/YKLaunchAdDemo.git", :tag => s.version }
s.source_files = "YKLaunchAd/**/*.{h,m}"
s.requires_arc = true
end
```
.podspec文件不要用文本编辑打开,因为"会是中文的。使用支持MarkDown编辑的编辑器打开。
这里s.source_files很重要,是你cocoapods所需要的文件路径,常见写法
>"Directory1/*"
>"Directory1/Directory2/*.{h,m}"
>"Directory1/**/*.h"
- “*” 表示匹配所有文件
- “*.{h,m}” 表示匹配所有以.h和.m结尾的文件
- “**” 表示匹配所有子目录
以"YKLaunchAd/**/*.{h,m}"为例,因为在YKLaunchAd下有Category子目录。
### 5. 验证.podspec
编辑好后最好先验证 .podspec 是否有有效
> $ pod spec lint YKLaunchAd.podspec
验证成功后:
> YKLaunchAd.podspec passed validation.
如果验证失败,首先测试本地 .podspec 文件是否存在语法错误,特别是s.source_files有没有写错,是否含有中文字符等,这里先不对错误排查进行说明。
### 6. 发布到CocoaPods
验证.podspec通过后,就可以发布了
> pod trunk push YKLaunchAd.podspec
发布时会验证 Pod 的有效性,如果你在手动验证 Pod 时使用了 --use-libraries 或 --allow-warnings 等修饰符,那么发布的时候也应该使用相同的字段修饰,否则出现相同的报错。
> pod trunk push YKLaunchAd.podspec --use-libraries --allow-warnings
发布成功后,就可以使用 pod search 搜索到你的 Pod 了!
### 7. 版本升级
当需要更新 Pod 版本的时候,修改 .podspec 中的 s.version 为更高的版本号,并修改 s.source 中对应的 Git 版本。提交到Git,并打上对应tag。然后再次执行pod trunk push YKLaunchAd.podspec将新的 .podspec 发布到 CocoaPods。
为了更新更加方便,版本控制更加清晰,s.source 建议采用如下写法:
> s.source = { :git => "https://github.com/jinstar520/YKLaunchAd.git", :tag => s.version }