用到cocoapods管理开源的三方库是个常用的做法,如何制作自己的私有仓库,从而让自己或者其他人用呢?当做随笔记录一下,如对您有有帮助,十分荣幸!
1 创建自己的git仓库
大家都知道三方开源库是放在git上托管的,这里也用git来演示,
习惯用git客户端的如sourceTree 的可以clone到本地,或者用命令行
cd ~
git clone https://github.com/leeeGreat/LW_Category.git
打开clone下来的文件 如下
打开命令行 cd到 LW_Category目录下
cd /Users/qianbaoeo/Desktop/LW_Category
还是在README.md所在的目录下执行命令
pod spec create LW_Category 生成相应文件 LW_Category.podspec 用xcode打开,这里最好不要用文本编辑打开,之前遇到的坑是用文本编辑器编辑,""变成了“” 导致编译错误
打开LW_Category.podspec文件,删除不必要的注释,更改至如下
之后执行命令行 pod lib lint
因为警告没有验证通过
[!] LW_Category did not pass validation, due to 7 warnings (but you can use `--allow-warnings` to ignore them).
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`.
You can use the `--no-clean` option to inspect any issue.
警告什么的可以改,这里也可以先不用管 执行 pod lib lint --allow-warnings
结果:LW_Category passed validation.
通过检验,如果你用的是sourceTree 提交本地版本,推送到远程
2 接下来添加私有的 Repo 安装到你的 CocoaPods 中
cd到本地的cocoapods目录 ~/.cocoapods/repo
执行命令 pod repo add LW_Category https://github.com/leeeGreat/LW_Category
LW_Category 用你的文件夹名字替换
https://github.com/leeeGreat/LW_Category 用你的sourceUrl替换即可
这样就生成了如下文件 LW_Category
展开LW_Category
好,接下来要做的是什么呢?
cd到 /Users/qianbaoeo/Desktop/LWCategory 再一次检查pod lib lint --allow-warnings
LWCategory passed validation.
3 添加你的 Podspec 到你的 repo
还在刚才的目录下,之心执行命令行
pod repo push LWCategory LWCategory.podspec
再次因为警告未通过验证 ,忽略警告试一下 pod repo push LW_Category LW_Category.podspec --allow-warnings
报错如下
设置一下release版本号
再次执行 pod repo push LW_Category LW_Category.podspec --allow-warnings
通过验证
这个时候去看一下~/.cocoapods/repo 和 github上
到这里了,打开命令行试一下 pod LW_Category search 已经可以成功搜索到
随便找个项目试一下看能不能pod install
新建一个xcode工程,名字叫demo,cd到工程所在路径
pod init 新建podflie
open podfile 打开编辑
target 'demo' do
pod 'LW_Category', '~> 0.0.1'
end
保存,执行pod install发现报错了:
qianbaoeos-Mac-mini:demo qianbaoeo$ pod install
Analyzing dependencies
[!] Unable to find a specification for `LW_Category (~> 0.0.1)`
这是因为pod install CocoaPods 默认只会在 master 下搜索,而我们的 spec 是存在我们私有的 LW_Category 目录下的。需要引入搜索地址,在 Podfile 的顶部添加如下两行代码:
source 'https://github.com/CocoaPods/Specs.git' #官方仓库地址
source ‘https://github.com/leeeGreat/LW_Category’ #私有仓库地址
这里要注意的是上面两行都要写,默认是第一行,搜索官方仓库,如果只写第二行,则官方的依赖库都不能使用了
再来试一下:
到此添加成功!