上篇在项目组件化(准备工作)已经对项目进行集成了cocoapods包管理,接下来就是进入真正的组件化工作中。
组件化的主要目的就是介绍模块之间的耦合,提高内聚性。接下来一步一步进行项目组件化:
1、先从简单的模块入手,将开发项目中无耦合的模块抽离出来。(我把开发项目中的Validator验证类抽离),为了写这篇文章,我再将开发项目中 FFTUtil类做抽取;
2、首先在和开发项目平级目录下新建一个Lib文件夹,我们将本地私有库都存放在这个目录下。使用终端cd到Lib目录下,创建本地私有库,使用pod lib create FFTUtil进行模板创建,


以上是创建模板的选择项,选择完成之后,自动生成项目模板并自动打开xcode工程。
3、将FFTUtil类文件从开发项目中抽取到刚才创建的本地库项目中,注意存放的路径要正确,因为FFTUtil依赖ChineseToPinyin的类,所以一并将其抽离,如果该类依赖三方库的话,还要将三方库导入该私有库的项目中;

4、然后command+b编译一下,保证该库是没有任何问题的;
5、到这里私有库就创建完成了;
6、将创建的私有库集成到现有的开发项目中,在开发项目中的Podfile中导入FFTUtil,路径如下

7、将开发项目中原有的FFTUtil和ChinesePinyin类从项目中删除掉,然后使用终端cd到开发项目Podfile路径,pod install更新下,

进行编译一下工程,如果编译失败如下

当前开发项目环境找不到该类,若找不到某项将其选中之后,将这两个环境勾选上,再编译

如果是报另外一种错误,参考下这个

某个类报错,就先将其移除后,再添加进来试下

到这里本地私有库已创建完毕,多年没有使用cocoapods的用户表示还是需要多看些cocoapods有关的资料,否则坑是很深的;
若有问题,还望各位指正,多多交流~
下一篇:ios组件化(二)创建远程私有库
网友评论