基于Cocopods的模块化管理实现

来源:互联网 发布:开淘宝店需要什么资料 编辑:程序博客网 时间:2024/06/05 08:15

去年下半年随着项目的功能越来越复杂,为提高代码的可维护性,对代码进行了一次模块化拆分。大概思路是,将代码拆分成为一个一个的模块,然后采用pod对模块进行管理。



注:虽然上面的示意图中的依赖是有层级关系的,但是实际上最后是没有层级关系。

第一步:

将工程拆分成多个子工程。

这一步一开始因为对Pod的机制不熟悉走了弯路,实际上,只需要把工程拆成多个独立文件夹就可以了,并不需要建立lib。因为pod管理依赖的本质,就是读取解析podspec文件之后通过ruby脚本将文件以及配置写入到项目中。


第二步:

对各个子工程添加podspec文件。具体的podspec文件的写法,参照官网就可以了,非常详细。为了避免走弯路,强烈推荐不要看网上的博客,只看官网。


第三步:

将刚刚将好的pod库,通过cocoapods集成到工程中去。 因为只是本地库,所以舍去了pod  lib lint这一步。

如果能运行成功,此时就大功告成啦!实际并不会这么顺利,因为拆分之前的耦合等现象,这里需要对代码引用等进行简单修改。


第四步:

有的模块需要开发给外部开发人员使用,这时候就需要创建私有库了。 因为刚刚podspec文件已经写好了,这时候只需要将podspec 推送到私有repo地址上就可以。(这一步需要pod lib lint进行验证),私有库的创建仍然建议是看官网,理解原理之后其实非常简单,千万不要图省事看博客。

简单来说就是: pod 从指定的repo地址下载podspec文件,通过podspec文件中指定的源码下载地址将源码下载到一个临时文件夹中,下载完成后读取解析podspec文件之后通过ruby脚本将文件以及配置写入到项目中。(这一步实际会在pod install中完成)。

从上面的过程可以看出,此时我们需要1、repo仓库   2、源码仓库地址   其中repo仓库只能是git仓库,源码仓库支持git,svn等等。


对代码进行模块化拆分,并用pod进行管理,大致就是这么多内容。到了这里看上去已经拆分成功了,实际上才刚刚开始,代码之间的解耦等等还有很多工作要做。

最后附上pod官网地址:http://cocoapods.org,有啥疑问上官网大笑












0 0
原创粉丝点击