本文主要是介绍基于Cocopods的模块化管理实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
去年下半年随着项目的功能越来越复杂,为提高代码的可维护性,对代码进行了一次模块化拆分。大概思路是,将代码拆分成为一个一个的模块,然后采用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,有啥疑问上官网
这篇关于基于Cocopods的模块化管理实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!