前言
文本将从零开始介绍如何使用cocoaPods
发布自己的开源库
第一步:注册Trunk
-
查看当前
pod
版本pod --version
-
如果未安装
pod
,需下载安装sudo gen install cocoapods pod setup
-
查看自己是否注册过
Trunk
pod trunk me
如果输出您的邮箱信息等,说明您已经注册过了,无需重新注册
-
注册
pod trunk register 您的邮箱地址@163.com "用户名" --verbose
您的邮箱地址@163.com
- 这里输入您的邮箱地址
用户名
- 这里输入您的用户名注册完成后,会给您的邮箱发送一封邮件,您需要进入邮箱,打开邮件中的链接,完成验证即可
-
验证是否注册成功
pod trunk me
观察是否会输出用户信息,注册如果成功会打印出您的邮箱和用户名
第二步:创建项目
-
到
github
上创建一个新项目- 进入您的git账号,点击
+
, 选择New Repository
, 新建项目 - 输入项目名称(注意:这里的项目名是你要发布库的名字如
ChXAnimation
而不是你的工程名如ChXAnimationDemo
)、填写描述,选择初始化一个README
文件,选择MIT
的授权文件
- 进入您的git账号,点击
Clone 到本地(使用
git
命令)
打开终端,cd
到您想存放项目的地方,如文档文件夹
cd ~/文档
在 github
上复制刚创建项目的链接地址,例如: https://github.com/sunrisechen007/ChXCategorys.git
clone
git clone https://github.com/sunrisechen007/ChXCategorys.git
- 添加要发布的库内容,如需要发布
ChXCategory
这个文件夹里的文件,直接把该文件夹拖入当前项目根目录中
第三步:配置信息
-
创建
.podspec
文件,用以配置pod
发布库的信息cd 到刚 cloen 的项目中 ,输入命令
pod spec create ChXCategorys
上面
ChXCategorys
是您要发布框架的名字,和git
上项目的名称(https://github.com/sunrisechen007/ChXCategorys.git
)保持一致注意这里的
podspec
文件名ChXCategorys
和您要发布库存放的文件夹ChXCategory
是可以一样的
-
编辑
.podspec
文件使用文本编辑工具打开刚建的
podspec
文件,删除里面的默认代码,按照下面格式输入代码Pod::Spec.new do |s| s.name = "ChXCategorys" s.version = "0.0.1" s.ios.deployment_target = '8.0' s.summary = “简介" s.homepage = "https://github.com/zhangyqyx/ChXCategorys" s.social_media_url = 'https://www.baidu.com' s.license = "MIT" s.author = { "xuchen" => "xxx@163.com" } s.source = { :git => 'https://github.com/zhangyqyx/ChXCategorys.git', :tag => s.version} s.requires_arc = true s.source_files = ‘ChXCategory/*' #依赖库,不能依赖未发布的库 #s.dependency = 'AFNetworking' , 'SDWebImage' end
下面是这些参数的意思,也很好理解,根据实际相应修改即可
s.name
-> 项目名 ,即使你要发布库的名字
version
-> tag 版本号(每次发布都需要修改)
...
s.source_files -> 这个是指定您要发布库的文件夹位置的,我这里是把文件都放在了ChXCategory
里了,后面的/*
表示该文件夹里的所有文件,当然您也可以写成*.{h,m}
表示里面的所有 .h 和 .m 文件如果
ChXCategory
里又嵌套了一个文件夹,您可以使用代码‘ChXCategory/*','ChXCategory/*/*'
目录图参考如下:
第四步:发布
-
上传到
github
(使用Git
命令行)将修改后的本地项目文件,提交到线上
1. git add . 2. git commit -m "提交说明文字" 3. git push origin master
add
是将代码从工作区提交到暂存区,.
表示提交所有文件
commit
是将代码从暂存区提交到版本库,-m
后面需要填写更新日志
push
是推送到远程主分支,您也可以推送到其它相应分支
-
打
tag
每次发布都得重新设置tag
1. git tag 1.0.0 2. git push --tags 3. git push origin master
可以使用
git tag
查看当前存在的tag
每次打完tag
之后,记得要推送(push
)到远程分支
-
验证
.podspec
文件内容是否正确pod spec lint ChXCategorys.podspec --verbose
ChXCategorys.podspec
这就是您项目中新建的 podspec 文件,需替换成您的
注意:
如果验证出现错误,修改完成后,需要把修改完成后的项目重新提交到 git
上,打 tag
,每次验证都需要修改下版本号 ;tag 要加 1 ,podspec文件里的 s.version 也加 1
-
可以发布啦
当验证完成无报错时,下面我们就可以发布我们的库了
pod trunk push ChXCategorys.podspec
耐心等待一会儿,结果出现有 Congrats 时,说明您的库已经发布成功啦。
-
验证
pod search ChXCategorys
输入以上命令,如果可以搜索到的话,那么恭喜.
如果搜索不到,出现如下错误提示[!] Unable to find a pod with name, author, summary, or description matching `xxx`
而你确认已经发布成功的话,那么你可以
- 前往 资源库 去删除 cocoapod 缓存中的 search_index.json 文件,重新搜索一次再试试,
有点慢,需要等待一会儿
- json文件路径: /Users/xx/Library/Caches/CocoaPods (
xx
是你的电脑账户名)
- 前往 资源库 去删除 cocoapod 缓存中的 search_index.json 文件,重新搜索一次再试试,
使用
进入到项目中,在 podfile
文件中添加 pod ChXCategorys
(ChXCategorys
您的库名),然后执行 pod install
就可以下载到您的库了