使用 Cocoapods 进行组件管理

2017-07-01  本文已影响0人  Seimda

随着公司项目的增多和业务的需求,各项目中相同模块的抽出和统一管理愈发重要,前段时间一直在进行一些尝试,现把过程中一些心得体会作为笔记记录下来,以便日后查阅纠正。

这里指只针对组件的依赖管理,至于组件化的具体实现方法逻辑和代码,又是一个庞大的话题,由于自身能力和时间有限,就不多作阐述了。

首先,我在公司内部组件的依赖管理上,只在 GitsubmodulesubtreeCocoapods 当中进行了考察和比对。

submodule

之前项目中一直使用的这种方式,主要原理是把一个子模块 Git 仓库引入到工程 Git 仓库,2 个仓库代码文件独立管理,协同工作。

优点

缺点

subtree

原理是将一个子模块 Git 仓库的某个 commit 版本 提交拷贝一份到工程 Git 仓库。
优点不显著,缺点明显:对于贡献代码不太友好,团队成员在自己的项目中修改组件后,无法提交到组件仓库。当然,也可能是我没有掌握 subtree 的正确操作方法,没有体会到它的其他好处,总之没有使用这种方式。

Cocoapods

一款优秀的框架管理工具,功能强大

优点

缺点:

虽然 Cocoapods 无法方便的在项目中提交更新,组件仓库需要专门维护更新,但是随着组件的成熟和增多,这种方式显然比前 2 种更为方便和适用。

私有库制作

Cocoapods 可将组件制作成私有库进行版本管理,相关优质教程很多,可参考
使用Cocoapods创建私有podspec
Cocoapods系列教程(三)——私有库管理和模块化管理
CocoaPods安装使用及配置私有库

注意点 & 小技巧

缺点

当然,在使用私有库的过程中,很大一部分时间私有库都是处于开发阶段,而我们总不能一直提交 tag 的方式进行 pod update 更新吧。因此 Cocoapods 就提供了一个开发模式,其实操作起来也是非常简单的事情,就是将所谓的引用路径修改成本地路径即可。就是讲 Podfile 中的 pod '库名', :path => '本地路径'即可。这样在通常的修改代码中是不需要执行 pod update 的,但是对于如果修改了目录结构(添加、删除或者移动文件文件)或者是修改了 Podspec 文件的配置的话,最好是运行一下 pod update 的命令。普通修改代码的情况下就不需要运行 pod update 命令和打 tag 了。
如 pod 'iOS-Echarts', :path => '../iOS-Echarts'

上一篇下一篇

猜你喜欢

热点阅读