发布开源项目发布到cocoapods上去

发布开源项目到cocoapods上,可以让别人直接用cocoapods引用你的项目。
首先你需要安装cocoapods,如果你在安装出现了问题,请参考我的这篇帖子:
解决安装cocoapods一直卡在Setting up master repos

######发布项目到cocoapods需要如下2个文件:
LICENSEpodspec,即开源许可和规格说明文件,如下图:

###LICENSE
一般采用MIT格式LICENSE如下:



直接去这个网址MIT拷贝下来直接修改年份作者即可,也可以拿Github上别人的LICENSE,用文本编辑器打开来修改开源许可。

###podspec
项目的规格说明,如下面这个podspec:

Pod::Spec.new do |s|
s.name = “FGGDownloader”
s.version = “1.0”
s.ios.deployment_target = ‘6.0’
s.summary = “FGGDownloader is used for resume from break point downloading.”
s.homepage = “https://github.com/Insfgg99x/FGGDownloader
s.license = “MIT”
s.authors = { “CGPointZero” => “newbox0512@yahoo.com” }
s.source = { :git => “https://github.com/Insfgg99x/FGGDownloader.git“, :tag => “1.0” }
s.frameworks = ‘Foundation’,’UIKit’
s.source_files = ‘FGGDownloader/*.{h,m}’
s.requires_arc = true
#s.dependency ‘SDWebImage’
#s.dependency ‘pop’
end

######每一项都有自己的含义:


s.name:名称,pod search name 的 name
s.version:版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介
s.homepage:项目的地址
s.license:开源许可
s.author:作者信息,表示格式为 { “[作者名]” => “[邮箱]” }
s.source:项目的git代码仓库的地址,如格式为:{:git => “[git代码仓库地址]”, tag => “[版本号]”}
s.frameworks:表示需要的框架,如’Foundation’,多个框架之间以英文逗号分隔。
s.source_files:别人通过你的pod引用文件的层级目录。
如我要引用FGGDownloader文件夹下的.h和.m文件,则可以写成’FGGDownloader/*.{h,m}’

s.requires_arc: 是否支持ARC
s.dependency:依赖的项目,如有多个,则写多行
#表示注释

###如何生成podspec
两种方法:
1.拷贝别人项目的podspec文件,修改作者,简介,依赖等说明信息。
2.用中端cd到项目目录,输入touch xxx.podspec生成podspec文件,其中xxx代表你项目的名字,跟上面的s.name要一致。

###验证podspec文的有效性:
验证podspec的有效性,检查修复语法或者逻辑错误:

1
pod spec lint xxx.podspec --verbose

xxx代表你的项目名字,要与上面的s.name一致。
需要注意的是:这种验证方式,存在警告也会验证不通过。
我们用可以忽略警告的验证方式(--allow-warnings),如:

1
pod spec lint FGGDownloader.podspec --allow-warnings

验证车成功后会提示xxx.podspec passed validation.,如:

###为你的项目添加版本号
开源许可LICENSE和podspec都做好之后,将项目push到你的远程代码仓库。

1
2
3
git  add .
git commit -m"添加开源许可和podspec"
git push origin master

发布开源项目到cocoapods上去需要添加版本号,用git tag添加版本号。
git tag -a 1.0.1 -m"version 1.0.1"
添加完版本号后,用’git tag’命令查看tag是否添加成功。

1
git tag

将本地添加的tag同步到远程代码仓库:

1
git push --tag

如果你对git tag的操作存在问题,请参考我的这篇文章:彩色的git lg

###万事具备
上面的准备工作都做好了,可以向cocoapods提交了。
我们可以通过pod trunk命令提交我们的开源项目到cocoapods
但是,前提是,你得注册了trunk账号,用pod trunk me验证你是否注册了:

######若不是出现类似如下信息的,都是没注册的:

###注册trunk账号
使用pod trunk register注册账号:

1
pod trunk register xxx.@xxx.xx "作者名" --verbose

上面的xxx.@xxx.xx表示邮箱,如123@yahoo.com.
–verbose选项表示输出可见性.

注册好了之后,用pod trunk me验证注册信息.

###发布代码到cocoapods
该有的都准备好了,发布吧!

1
pod trunk push xxx.podspec --verbose

上面的xxx表示项目名,要和s.name保持一致.
需要注意的是,这种提交命令,不允许你的podspec文件存在警告。若存在警告,则不能通过有效性验证,导致发布失败!

我们可以加上允许警告的选项(–allow-warnings)如:

1
pod trunk push FGGDownloader.podspec --allow-warnings


验证是否发布成功:
pod search xxx
xxx表示你的项目名,要和上面的s.name 保持一致。若能查找到,表示发布成功。

你也可以在cocoapods官网搜索你的项目来验证,但一般官网存在延迟,发布后不能立即搜出来,可能要等到第二天甚至第三天。

在cocoapods官网搜索验证