1、之前写的组件代码库结构都比较简单,但实际在进行项目组件化过程中,工程的结构就比较复杂了,因此涉及到了对文件的分层,很多文章都以subsepc的方式对组件文件分层,其实这样做太麻烦,而且podspec容易出问题,我在组件化过程中也试过这种方法,不好使。这里介绍一个简单方法:
将组件库的podspec文件s.source_files = 'YHTestSevenEight/Classes/**/*' 写成这种格式,就不必再用subspec方式对文件分层了,直接按正常方式写podspec文件即可,亲测有效。
解析:
* 表示匹配所有文件
*.{h,m} 表示匹配所有以.h及.m结尾的文件
** 表示匹配所有子目录
举例:
下载文件夹YHTestSevenEight下所有文件,子文件不识别:s.source_files = 'YHTestSevenEight’
下载文件夹目录YHTestSevenEight下所有格式文件:s.source_files = 'YHTestSevenEight/*.*’
下载目录及其子目录YHTestSevenEight下所有文件:s.source_files = 'YHTestSevenEight/**/*’
下载文件夹下名称为AppManInfo AppWomanInfo 的.h及.m文件:s.source_files = 'YHTestSevenEight/App{Man,Woman}Info.{h,m}’
目标文件路径下的文件不进行下载:s.ios.exclude_files = 'YHTestSevenEight/Classes/json’
2、用.h文件收集所有组件库需要导入的文件
在组件工程中创建SevenEight.h文件,文件内容为
#import "YHTestSevenViewController.h"
#import "YHTestEightViewController.h"
#import "YHTestSevenCell.h"
#import "YHTestEightCell.h"
文件所在位置为Classes文件夹下,如图:
之所以放在Classes文件夹下,是因为podspec文件s.source_files = 'YHTestSevenEight/Classes/**/*'只写这一个文件源即可