公有库的原理
我们为准备制作的公有库生成一个描述文件spec(里面包含了框架的名称、代码的存放地址、版本号等),提交到Cocoapods的远程索引库中,再将我们的源码push到远程仓库中,在我们或者他人,执行
pod setup
命令时,索引文件就被缓存到我们的本地了,在我们使用
pod search
命令时,本地的索引库就会检索出符合条件的库的描述文件spec
-> SDWebImage (4.0.0)
Asynchronous image downloader with cache support with an UIImageView
category.
pod 'SDWebImage', '~> 4.0.0'
- Homepage: https://github.com/rs/SDWebImage
- Source: https://github.com/rs/SDWebImage.git
- Versions: 4.0.0, 4.0.0-beta2, 4.0.0-beta, 3.8.2, 3.8.1, 3.8.0, 3.7.6,
3.7.5, 3.7.4, 3.7.3, 3.7.2, 3.7.1, 3.7.0, 3.6, 3.5.4, 3.5.2, 3.5.1, 3.5, 3.4,
3.3, 3.2, 3.1, 3.0, 2.7.4, 2.7, 2.6, 2.5, 2.4 [master repo]
- Subspecs:
- SDWebImage/Core (4.0.0)
- SDWebImage/MapKit (4.0.0)
- SDWebImage/GIF (4.0.0)
- SDWebImage/WebP (4.0.0)
,从而按照描述文件上面的信息实现安装。
准备工作
- 安装cocoapods
- 命令行工具
- 代码托管仓库(GitHub Coding.net等)
- 准备上传的代码
正文
想要创建开源的Pod库,需要注册一个Cocoapods账号,这个操作过程在终端进行,email使用你的GitHub邮箱,如果你在多终端操作时,这也是你的登录命令
$ pod trunk register GitHub_email 'user_name' --verbose
在终端出现如下文字时,
[!] Please verify the session by clicking the link in the verification email
登录你的邮箱进行验证。成功后,在终端输入
pod trunk me
就可以看到你的注册信息啦
datianyedeiMac:demo dream$ pod trunk me
- Name: ryanflecher
- Email: @163.com
- Since: April 1st, 19:40
- Pods:
- YGTools
- Sessions:
- April 1st, 19:40 - August 10th, 00:15. IP: 183.129.240.106
- April 6th, 23:03 - August 13th, 00:25. IP: 115.196.216.10
关于git仓库
关于新建项目仓库这里就不多说了,里面至少要包含你的代码文件、开源许可证(LICENSE)、仓库说明(README.md),还有之后要创建的描述文件,ignore文件也顺便检查一下,有没有忽略你要提交的代码的所属语言,不然后面一定会报错。
编辑描述文件
cd到仓库目录下,在终端输入
pod spec create 你的项目名称
这样就会在仓库中生成 你的项目名称.podspec文件
文件中的相关配置建议搜索一下相关模板,因为很多配置不是必须的,写的越多,错的越多(╯‵□′)╯︵┻━┻,这里就不贴出了。
写好之后,要使用
pod lib lint
命令验证你编辑的描述文件是否正确,当然了,warning和error是常伴我们左右的,比如描述比简介短啦这种的,你可以在后面忽略掉warning
pod lib lint --allow-warnings
**这里我想着重强调一下“s.version = ”不要乱填 因为之后要与你push代码的标签一致 **
验证成功之后,打上和之前“s.version = ”一样的版本号标签,把代码提交到托管仓库。
发布
来到最后,我们将发布我们的描述仓库
pod trunk push 你的项目名.podspec
这一步包括了验证.podspec格式、将.podspec转为JSON、对master进行提交及合并操作。
成功后的样子
Updating spec repo `master`
Validating podspec
-> YGTools (1.0.0)
Updating spec repo `master`
--------------------------------------------------------------------------------
🎉 Congrats
🚀 BYPhoneNumTF (1.0.0) successfully published
📅 March 7th, 01:39
🌎 https://cocoapods.org/pods/YGTools
👍 Tell your friends!
使用
是不是迫不及待想使用了呢,别急,就像我们之前说的,本地索引库还没有更新,所以我们要使用
pod setup
更新一下,如果不出意外的话,你就会查询到你的项目啦。
其他
有的小伙伴使用的demo文件操作的,如果之后想删除掉怎么办呢,我们可以使用
$ pod trunk delete NAME VERSION
命令来删除,更多的命令等你去发现哦。