iOS-CocoaPods之上传自己的库
2020-05-27 本文已影响0人
JimmyCJJ
当你的才华撑不起你的野心时,你就应该静下来学习。 —— CJJ
- 突然有一天,你觉得你的修行已经到了一定境界了,可以写自己的库玩玩了,那么就可以上传
GitHub
啦,同时可以上传到CocoaPods
供他人使用,方便管理 - 那么接下来看看上传到
CocoaPods
需要(踩多少坑吧)哪些步骤吧
- 首先假设你已经上传了项目到代码托管平台(如
github
) - 如果本地电脑没有该库,得克隆下来(如果有就忽略此步)
git clone xxx.git
- 注册
trunk
sudo gem install cocoapods
pod trunk register 403327747@qq.com 'JimmyCJJ' --verbose
第一个指令是更新一下CocoaPods
不管你现在是什么版本,这个指令也都没有坏处,他会升级到目前最高的正式版。
第二个指令建议邮箱名和用户名与自己的github同步,之后去自己的邮箱中找到该邮件点击验证的链接完成注册
- 完成之后再次进入终端查看自己注册信息
pod trunk me
-
如果成功的话可以看到如下图所示
pod trunk me - 到工程目录创建podspec文件
pod spec create CJJRouter //这里的CJJRouter替换成你对应的库名
- 配置自己的
podspec
文件
方案一:找CocoaPods
官方文档看怎么填写
CocoaPods
方案二:百度或者pull优秀的三方库看别人怎么填写,比如你现在看的这个(hhh)
以下是我填写的部分
Pod::Spec.new do |s|
s.name = 'CJJRouter'
s.version = '1.0.2'
s.license = { :type => 'MIT'}
s.summary = 'CJJRouter实现了一句代码跳转任意控制器(可传参数),不需要再引用头文件,减少耦合和依赖'
s.description = 'CJJRouter is a tool to achieve pushing by one line of code.'
s.homepage = 'https://github.com/JimmyCJJ/CJJRouter'
s.authors = { 'JimmyCJJ' => '403327747@qq.com' }
s.social_media_url = 'https://www.jianshu.com/u/fd9922e50c1a'
s.ios.deployment_target = '9.0'
s.source = { :git => 'https://github.com/JimmyCJJ/CJJRouter.git',:tag => s.version }
s.frameworks = 'UIKit'
s.requires_arc = true
s.source_files = 'CJJRouterDemo/CJJRouterDemo/CJJRouter/*.{h,m}'
end
-
填写
podspec文件
也是最容易出错的一步,请耐心根据错误信息改正,看不懂报错信息的话可以百度,基本都有解答,这里就不列出来了 -
需要注意的是
source_filessource_files
,可以这么写,以spec
同一个文件夹的路径为始,找到对应的库路径,这里是'CJJRouterDemo/CJJRouterDemo/CJJRouter/*.{h,m}'
-
修改完后把自己的项目提一次
commit
到github
上 -
再打一下
tag
git tag 1.0.1 //这里的1.0.1是例子,按实际版本情况打tag,每次更新都+1
- 查看本地的所有
tag
版本
git tag
- 也可以删除本地的某一个
tag
git tag - d 1.0.0
- 把
tag
推到远程
git push --tags
-
tag
和commit
是两个不同的机制,就算commit
全被reset
了通过tag也可以找回代码。 - 提交
podspec
-先验证
pod lib lint
- 提交
podspec
-验证成功后提交
pod trunk push
或
pod trunk push --allow-warning
- 上传成功
- 此时如果使用
pod update
对应的库无法更到最新版本,搜也搜不到的话,试试以下命令更新cocoapods
pod repo update
- 然后搜索版本库
pod search CJJRouter
- 搜索成功
-> CJJRouter (1.0.2)
CJJRouter实现了一句代码跳转任意控制器(可传参数),不需要再引用头文件,减少耦合和依赖
pod 'CJJRouter', '~> 1.0.2'
- Homepage: https://github.com/JimmyCJJ/CJJRouter
- Source: https://github.com/JimmyCJJ/CJJRouter.git
- Versions: 1.0.2, 1.0.1 [master repo]
- 最后可以更新了
pod update CJJRouter
- 另外,也可以移除某一个版本
pod trunk delete CJJRouter 1.0.1
- 删除github上某个版本
- git tag -d 1.0.0
- git push origin :1.0.0