模块化开发,创建pod库是必须的,这里记录一下创建过程。
以创建私有库为例
1.以安装了pod为前提。在用户下的隐藏文件夹中会有.cocoapods文件
新建的私有仓库也会在这目录下,WBPod就是我试验的
首先需要一个Git地址(例如:https://gitee.com/wbtuxi/WBPod.git)。
我是在码云建的仓库,当然GitHub、coding、gitlab都是一样的
私有库创建需要绑定一个Git地址,执行如下命令,就会生成一个你自己命名的pod spec repo,如上图的WBPod就是这样生成的。
pod repo add WBPod https://gitee.com/wbtuxi/WBPod.git
2.再次用码云创建一个私有仓库
这次的Git地址 https://gitee.com/wbtuxi/WBPodTest.git
- 找一目录下执行如下命令 ,会生成pod依赖项目
pod lib create WBPodTest(项目名称)
-
之后会让你选择几个属性,按需求输入选项就好了
- 项目建好,用命令提交到Git,逐次执行命令
git add .
git commit -s -m "Initial Commit of Library"
git remote add origin https://gitee.com/wbtuxi/WBPodTest.git
git push origin master
我测试时最后一条没有通过,应该是README文件冲突,可以换成git push origin master -f 或者 git push -f(参考 https://www.jianshu.com/p/681a879745e4)
这里成功后,可以说用些版本控制工具继续打理像sourcetree
-
接着编辑项目的podspec文件
有几个需要明确的地址
- 项目文件(WBPodTest)下执行 如下命令,校对文件
pod lib lint
如有警告:[!] DemoPodSpecs did not pass validation, due to 2 warnings (but you can use --allow-warnings to ignore them).You can use the --no-clean option to inspect any issue.
解决办法
pod lib lint --allow-warnings
- 没有错误,校队成功显示passed validation,就可以添加代码试试了
代码必须添加到Classes文件夹,资源放Assets,不然会找不到。
添加些代码推送远程仓库,这里用sourcetree 打个标签
推送远程仓库就可以了。
3.有些博客没有写1与2的两个仓库的关系
一般第1个是你整个pod库的描述信息,包括作者、版本、license、地址等,按我理解就像个索引,让引用你库的项目更快的找到。现在让两个库建立联系。
$ pod repo push WBPod WBPodTest.podspec #前面是本地Repo名字(即1), 后面是podspec名字
#如果有相同警告,使用这个命令
pod repo push WBPod WBPodTest.podspec --verbose --use-libraries --allow-warnings
可以去第1个仓库本地目录下看看是不是有了第二个仓库的.podspec
现在创建一个新工程 实验一下,我们创建的私有仓库能不能用
pod search WBPodTest
或者新建项目
新建项目下初始化pod,会有Podfile文件生成
pod init
podfile 文件添加
pod 'WBPodTest',:git => 'https://gitee.com/wbtuxi/WBPodTest.git'
#私有仓库,必须要添加地址,是与公库不同的地方
在podfile的顶部添加
source 'https://github.com/CocoaPods/Specs.git' #官方仓库的地址
source 'https://gitee.com/wbtuxi/WBPod.git' #我们自己的私有spec仓库1的地址
如图
保存,重新在新工程下
pod install
到这里基本就完成了,这是我翻博客总结的自己的流程和问题,可能过程中的问题不太相同,希望对需要的有所帮助。