将一个项目组件化拆分掉,一般会拆分一些基础组件、一些功能组件和业务组件。将拆分好的组件放在远程仓库,统一通过Cocoapods进行管理。当然,要实现这个管理的过程,有一些概念还是需要知道的。

 

 

 

远程索引库、本地索引库、远程代码库、本地代码库,通过category的基础组件说明这四个概念。

 

第一步:基础组件category

 

一、远程索引库

 

什么是远程索引库?

 

每创建一个组件都会带有一个xxx.podspec的索引文件。专门用来存放这些索引文件的库就叫做索引库。我们需要将这些索引文件上传到远程索引库才能保证其他同事能够拿来用。

 

创建远程索引库:(注:这里是在GitHub上创建了一个public的organization名字叫FFComponent)逼着这里创建的public的,自己公司的项目创建private的私有索引库即可,私有索引的步骤和public的操作方式一样

 

 

 

远程索引库已经创建成功,可以看到远程索引库的地址:

 

 

 

二、本地索引库(本地索引库就是用来存放本地索引文件的库)

 

1、打开终端pod repo 查看一下当前有哪些本地索引库(如果你之前没有创建过,应该只有一个master):

 

 

 

2、通过pod repo add <本地索引库的名字>  <远程索引库的地址>,创建本地索引库并和远程索引库做关联(注:本地索引库的名字建议和远程索引库起的名字一样)

 

 

 

3、通过下面的方式可以查看本地索引库的物理地址:

 

 

 

三、远程代码库(代码实际存放的远程仓库)

 

创建远程代码仓库(和创建远程索引库的方式一样),创建一个FFCategoryKit的远程代码库,用来存放FFCategory组件的代码。同样获取到FFCategoryKit组件的远程代码库地址。

 

 

 

FFCategory组件


 

 

 

 

四、本地代码库

 

创建FFCategoryKit组件本地代码库

 

1、pod lib create <组件名> 创建本地代码组件模板库(根据自身需求对下面的提示信息做选择就好)

 

 

 

2、编译swift版本错误解决,修改一下ReactiveCocoa和Result的UserLegacySwiftLanguage Version 为YES。

 

3、编译运行通过看下效果。接着把