对于开发者来说,随着自己的开发经验越来越久,或是自己对于某个方面、知识点研究的比较透彻,应该都会尝试着写一个属于自己专属的功能文件,比如呢:图片轮播、相册选择、文件上传下载、音视频播放、UI动画、自动布局、刷新数据等…但怎么让自己写好的开源文件支持Cocoapods
下载方便自己、他人使用呢,相信你认真看过这文章后一定也会掌握好这项技能的。
准备条件: GitHub账号,Trunk账号,GitHub Desktop客户端,Markdown编辑器
1. 创建开源的Public仓库
在GitHub
个人主页创建任意一个你想开源的仓库
包含的术语:
Repository name
仓库名称
README
说明文档
.gitignore
包含的文件类型,即.git
文件类型GitHub都不会将其加入到版本管理中
license
文件(正规的仓库都应该有必须有且有一个,Pods依赖库对这个文件的要求更严)
接着clone
到本地GitHub Desktop
在Finder
打开本仓库,看到目录结构如下
2. 创建podspec描述文件
podspec文件:
它本质是个ruby
文件,里面包含代码的作者、版本号、源代码地址、依赖库等信息的文件,任何支持Cocoapods的开源代码都必须有podspec
文件,这样开源很方便的让Cocoapods搜索到对应的podspec
创建podspec
文件
pod spec create 工程名
创建好之后在Finder
中看到的目录结构如下
接着在工程文件内部添加你自己的开源文件(文件名建议和工程名一样),这时也可以添加为开源框架说写的Demo
,这样方便开发者更好的理解、使用等(这不是必须的,但我个人还是强烈建议用封装好的开源文件写个Demo
)
这时再打开客户端GitHub Desktop
,可以看到待提交文件和历史提交记录等
然后打开并编辑自己仓库的podspec
描述文件
podspec
常用的参数的含义解释如下:
s.name 仓库名字
s.license 文件类型
s.requires_arc 是否支持ARC
s.version 当前版本号
s.platform 支持的平台
s.framework 导入依赖的框架库
s.summary 仓库功能的描述
s.author 作者信息
s.source_files 源文件的路径(相对podspec文件而定)
s.resourcs 资源文件,不需参与编译的
s.homepage 主页地址
s.source 具体路径
s.public_header_files 预编译头文件路径
podspec
语法结构
Pod::Spec.new do |s|
...
...
s.subspec '子目录' do |ss|
...
end
s.subspec '子目录' do |ss|
...
end
end
即:它从
Pod::Spec.new do |s|
开始,到最后一个end
结束中间每一个subspec到end
是一个子目录,子目录对应的|**|
中间名字是可以任意给命名的,但子目录内部使用的名称必须一致
podspec
通配符的说明
- a{bb,bc}def.{h,m}表示四个文件abbdef.h abbdef.m abcdef.h abcdef.m
- *.{h,m,mm}表示所有的.h .m .mm文件
- Class/**/*.{h,m}表示Class目录下的所有.h .m文件
3. 为源代码添加对应的Tag
- 在GitHub上面的源代码需要打上版本号标签,这样
Cocoapods
管理器才能更准确地找到你的repo
- 通过
Iterm
命令push
源代码的tag
值
git tag '0.0.1' //版本号
git push --tags //提交标签
截图如下:
这时打开自己的GitHub主页
注意:若是以上步骤都不错的话,这时
Tags
下的文件和Branches
下的文件应是一一对应的,如下:
4. 验证podspec文件的正确性
pod spec lint 工程名字.podspec --verbose
成功之后的截图如下:
注意:任何的警告、错误都是不能被添加到
Spec Repo
中
5. 通过Trunk推送给Cocoapods服务器
首先向trunk服务器
查询自己的注册信息
pod trunk me
存在Trunk账号
截图:
没有注册Trunk
的话,注册一个账号
- 先确认当前的Cocoapods版本号(最低要求版本0.33),现在最新的版本号好像是
1.0.1
pod --version / gem list --local | grep cocoapods
若是版本不满足,更新一下
sudo gem install cocoapods
注册Trunk账号
,回车之后去打开邮箱的链接(需要copy
,不能直接点击)即可完成
pod trunk register 邮箱全称 '用户名' --verbose
最后通过终端push对应的podspec,完成开源项目支持Cocoapods下载的最后一步
pod trunk push 工程名字.podspec
成功的结果截图:
5. 更新本地pod依赖库
pod setup
结果截图如下:
这时就可以搜索自己刚提交过的开源文件
- 成功之后
Cocoapods
服务器会将上传的podspec
文件转换为需要的json
文件 - 检验你自己的开源描述文件
- 前往文件夹 -
~/.cocoapods/repos/master/Specs
找到对已应的json文件,如截图所示:
打开json文件
内容:
- 此刻,你也可以在
Cocoapods
官方的spec
文件中查询到对应的json文件,Cocoapods的Spec,方法如上面所示,这里省略…
自此,制作自己的开源项目支持
Cocoapods
下载的全部操作流程结束。
6. 更新仓库的版本
若是修改描述文件、更新开源文件等都需要重新更新仓库
步骤如下:
- 修改
podspec
和tag
(代码版本号) - 重新
trunk
到Cocoapods
服务器
今回家早了些,自己最近在写即时通讯IM的东西,忙的好久没上过简书了,还好现在终于给这个知识点写完了…晚安啦。。。
最后附上之前的参考链接:
CocoaPods安装使用及配置私有库