ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

一、本地私有库

  目的:在本地创建私有库,项目pod本地创建的第三方库。

  步骤如下:

  1、如图,在桌面创建TestProject文件夹,里面再创建TestLib文件夹,里面再创建Classes文件夹,打开终端,cd到Classes文件夹下,输入命令行touch Person.h Person.m,创建Person.h和Person.m文件。接着cd到TestLib文件夹下,在终端输入git init,初始化本地库;在终端输入git add .,将代码放到暂缓区;在终端输入git commit -m '初始化Person',将代码放到本地版本库;在终端输入pod spec create TestLib,在本地创建spec索引文件。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  2、修改spec索引文件如下图

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  3、用Xcode在TestProject文件夹下创建Test工程,cd到此工程目录,在终端输入pod init,创建Podfile文件,打开Podfile文件,如图输入pod 'TestLib', :path => '../TestLib',关闭Podfile文件,在终端输入pod install进行下载,如此就把本地第三方库TestLib引入了Test工程。如果单纯在Podfile文件输入pod 'TestLib',则是在pod repo后的本地索引库中寻找第三方库后进行下载。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  4、修改Person.h和Person.m文件的内容后,需要提交代码到本地版本库后,工程才能正常引用和使用。cd到第三方库TestLib目录下,在终端依次输入git add .、git commit -m "修改Person.h和Person.m文件"、git push,这样就能正常提交代码到本地版本库。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  5、如果第三方库增加文件man.h和man.m,则需要在终端cd到Test工程目录下,输入pod install,进行下载文件。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

二、基础组件的抽取方式

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  目的:将Category作为基础组件,Controller作为业务组件抽取出来到本地库

  步骤如下:

  1、如下图,在TZEducationiOS创建一个工程,工程里面有TZEducationiOS-Main-Category文件夹下分类文件作为基础组件。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  2、在和TZEducationiOS工程的根目录同级下,创建Lib-TZEducationiOS-Classes文件夹,将作为基础组件的分类文件拉取到Class文件夹下。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  3、让Class文件夹作为第三方本地库。打开终端,cd到Classes文件夹下,输入git init,初始化本地库,输入git add .,将代码加入到暂缓区,输入git commit -m '分类的基础组件抽取',将代码加入到本地版本库。输入pod spec create TZEducationBase,创建本地索引库。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  4、如下图修改TZEducationBase.podspec文件后,保存。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  5、cd到TZEducactioniOS目录下,终端输入pod init,初始化生成Podfile文件。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  6、如图修改Podfile文件后,保存。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

  7、终端输入pod install,进行下载本地第三方库TZEducationBase。如图,可以看到组件化分类成功。

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

三、旧有的组件化方式

  项目有多个工程的即一个主工程里面有其他组件,以前有2种方式,一起来见识一下吧。

第一种方式:

1、在桌面Desktop创建“主工程01”,在“主工程01”目录下分别创建“组件01”工程和“组件02”工程,如图:

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

2、将“组件01”工程和“组件02”工程添加到“主工程01”

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

3、组件里面的文件的引用方式,如图,需要到文件路径下去引用

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

第二种方式:

1、在桌面Desktop创建“主工程02”,打开“主工程02”,如图点击target处的“+”,创建“组件01”和“组件02”

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

2、组件的文件在主工程02里面可以直接引用,不需要到相应路径下去引用