基于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,有啥疑问上官网大笑












  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值