手把手教你发布自己的开源框架到CocoaPods

偶尔会发布自己的开源框架到CocoaPods上,但是每次都忘记命令行,写这篇博客的目的是为了记录下来步骤,方便以后翻阅使用

一、先将代码传到github上

这步比较简单,大致说一下:

1
2
3
4
5
6
7
8
9
10
// 创建本地仓库
git init
// 添加名称为origin的远程连接
git remote add origin '你的github项目地址'
// 将本地代码加入本地仓库里
git add .
// 提交修改到本地仓库
git commit -m '你的修改记录'
// 推送master分支的代码到名称为origin的远程仓库
git push origin master

二、给你git打上tag

打tag的目的就相当于给你的开源框架制定版本号,每个版本一个tag,下面是打tag的流程:

1
2
3
4
5
6
// 查看本地tag
git tag
// 添加本地tag 1.0.0
git tag -a 1.0.0 -m 'release 1.0.0'
// 将tag传到远程
git push origin --tags

tag的其他操作

1
2
3
4
// 删除本地tag
git tag -d 1.0.0
// 删除远程tag
git push origin -d tag 1.0.0

三、注册Trunk

1
pod trunk register 你的邮箱 '你的用户名' --description='你的描述'

成功的话就会受到一份邮件,点击邮件中的链接后验证一下:

1
pod trunk me

成功的话会返回以下类似字段:

1
2
3
4
5
6
7
8
9
- Name:     WCL
- Email: wangchonglei93@icloud.com
- Since: January 10th, 21:32
- Pods:
- WCLImagePickerController
- WCLShineButton
- CRRefresh
- Sessions:
- January 10th, 21:32 - July 22nd, 07:38. IP: 58.132.205.59

如果你的pod是由多人维护的,你也可以添加其他维护者:

1
pod trunk add-owner ARAnalytics kyle@cocoapods.org

四、创建自己项目的Podspec描述文件

上传到cocoapods时主要就依赖着.podspec的描述文件来进行配置的,所以我们要先建立一个.podspec的描述文件:

1
2
// 初始化.podspec文件
pod spec create 你的项目名

初步了解.podspec文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Pod::Spec.new do |s|
s.name = "你的项目名"
s.version = "项目的版本"
s.summary = "项目的描述"
s.homepage = "项目的主页,一般为github地址就行"
s.license = "许可证:一般为 MIT"
s.author = { "作者名" => "你的邮箱" }
// 支持的最低版本,比如ios 8.0
s.platform = :ios, "8.0"
// 源代码地址,也就是你github上的地址
s.source = { :git => "你的github地址", :tag => "项目的tag" }
// 源代码的文件路径
s.source_files = "WCL", "WCL/**/*.{h,m}" , "WCL/*.{swift}"
// 资源文件路径
s.resources = "WCL.png", "WCL/**/*.{bundle}" , "WCL/*.{bundle}"
// 用到的框架
s.framework = "UIKit"
// 依赖的第三方库
s.dependency "JSONKit", "~> 1.4"

编辑完podspec文件后,需要验证一下这个文件是否可用,如果有任何WARNING或者ERROR都是不可以的,它就不能被添加到Spec Repo中,不过xcode的WARNING是可以存在的,验证需要执行命令:

1
pod spec lint 你的podspec文件名.podspec

通过的话就验证成功,失败会告诉你错误的位置,一般很详细

五、传到CocoaPods上

pod trunk push 命令会首先验证你本地的podspec文件(是否有错误),之后会上传spec文件到trunk,最后会将你上传的podspec文件转换为需要的json文件。在工程根目录(包含有.podspec)下执行命令:

1
pod trunk push

没有错误的话,会提示你成功,并返回一下类似代码:

1
2
3
4
5
6
7
8
--------------------------------------------------------------------------------
🎉 Congrats

🚀 CRRefresh (1.0.0) successfully published
📅 March 16th, 07:14
🌎 https://cocoapods.org/pods/CRRefresh
👍 Tell your friends!
--------------------------------------------------------------------------------

以上是基本流程,如果有什么问题欢迎交流,最后谢谢大家的阅读


作者 @W_C__L
2017 年 03月 09日

简单不先于复杂,而是在复杂之后~~