组件化开发之创建自己的pod索引库
组件化开发其实就是把自己项目里一些功能模块或者自己封装的一些工具类、UI控件用cocoapods来管理,这样就增加开发效率和维护成本,当你开发一个功能模块的时候,不用每次都把整个项目都编译一下,只需要专注一个模块就行了,这种开发模式要求模块之间的高度解耦,这就强制开发者规范自己的代码习惯,无形中加深了开发者面向对象的思想。但是环境的搭建,资源的使用,和组件之间的数据传递还是挺繁琐的。(初学者,欢迎指正,一起交流进步)
1.创建远程索引库
在git上创建一个远程仓库来作为pod的索引库,来存放pods的specs文件,可以是私有的也可以是公开的
打开终端
pod repo
来查看pod的本地索引库
添加自己的本地索引库,并关联创建好的远程git仓库(自己的远程pod索引库)
pod repo add WKMaster https://github.com/wangkai678/WKSpecs.git
移除自己的本地索引库
pod repo remove WKMaste
2.创建组件模版
远程私有库创建好了,现在开始写一个测试组件,首先在git创建一个远程仓库,来存放自己的组件。
然后打开终端执行命令
pod lib create WKDownloader
屏幕快照 2017-08-14 下午2.24.13.png
填写好信息,成功之后会看到类似于
屏幕快照 2017-08-14 下午2.25.18.png
这样一个文件夹
然后打开工程修改podspec文件
到工程的根目录下执行命令
pod lib lint
来验证你的本地podspec文件修改是否正确,不会验证tag
如出现
则验证通过
然后把本地工程和远程仓库关联起来
git remote add origin https://github.com/wangkai678/WKDownloader.git
然后把代码push到远程仓库
git add .
git commit -m '123'
git pull origin master --allow-unrelated-histories
git push origin master
然后开始打标签,标签要和spec里面的一致
git tag '0.1.0'
git push --tags
执行命令
pod spec lint
验证远程spec文件是否正确,验证tag
3.把工程的podspec文件提交到自己的pod索引库
pod repo push WKMaster WKDownloader.podspec
屏幕快照 2017-08-14 下午3.28.03.png
这个时候你就可以用pod 安装自己的组件了,注意Podfile必须要加上自己的索引库地址和pod官方索引库
source 'https://github.com/wangkai678/WKSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'
屏幕快照 2017-08-14 下午3.40.19.png
4.远程私有库升级
如果你的组件有变化,需要把podspec里面的s.version 改成更高的版本号
244DB9A0-E99F-49A3-911C-5031B4996D5A.png
然后进入工程根目录开始打标签,标签要和podspec里面的s.version保持一致
git tag '0.2.0'
git push --tags
然后提交到自己的本地和远程索引库
pod repo push WKMaster WKDownloader.podspec
然后在你需要安装组件的工程里面执行命令
pod update --no-repo-update
5.远程私有库依赖和分支
如果要添加依赖podspec里面有个字段
s.dependency 'AFNetworking', '~> 2.3'
有时候有可能只需要安装组件里面的一个子组件,修改podspec
3D59C4DB-424F-495F-894C-05C75F8B8B30.png然后升级远程索引库
安装的时候只需要修改Podfile文件
pod 'WKDownloader/Dog'
或者
pod 'WKDownloader', :subspecs => ['dog','Person']