iOS项目组件化-CocoaPod创建私有库
项目组件化
项目组件化就是将项目分成一个个单独的模块,通过各个模块之间的组合形成一个大整体。各个模块则通过各个功能组件、基础组件组合而成。
模块:我们把每个模块称为业务组件(如首页、我的、...)
常见的组件:业务组件、功能组件、基础组件(工具类、分类)
优势:通过几个单独组件的快速组合便可以实现单一模块的运行、测试
组件的创建方式:工程与工程嵌套、工程依赖静态库、使用CocoaPod创建私有库并依赖
CocoaPod创建私有组件
Pod工程 = 组件类文件 + podspec文件
创建过程
分三大步骤:一、创建pod工程并提交远程仓库
二、检查Pod工程中podspec文件是否配置有误
三、创建远程私有仓库,并只将Pod工程中的podspec文件提交到私有远程仓库
注意:此处的一、三分别为单独的仓库
过程详解
一、创建pod工程并提交远程仓库
1.pod lib create 工程名
pod lipo create MTFDemoToolClass 执行后提示如下
2.进入工程目录Pods,找到ReplaceMe.m类,pod工程中所有创建的类与ReplaceMe.m类为同级目录或为此目录的子目录。此目录我将ReplaceMe.m类删除,创建如下并在新创建的类中增加代码
@interface MTFDemoToolClass : NSObject
- (void)testMeath;
@end
@implementation MTFDemoToolClass
- (void)testMeath{
NSLog(@"测试此方法");
}
@end
3.在工程目录中找到Podspec Metadata,查看.podspec文本内容,并修改s.description信息或者版本号
(此处注意两点:s.version:版本号与Tag 版本一致
s.homepage:与远程仓库的地址一致
s.source:与远程仓库的地址一致
s.summary:记得修改值,否则会提交私有库是抛错 )
4.创建远程仓库并将整个Pod工程提交远程仓库,此处我直接将Pod工程提交到GitHub(可以为GitLab、码云 如为GitLab、码云则注意3.中 s.homepage、s.source地址)
5.给Pod工程标记Tag,并将Tag推送到远程仓库,执行命令如下:(注意版本一致性与3中提到的s.version)
git tag -a 0.1.0 -m "0.1.0"
git push --tags
git push origin master
6.查看远程GitHub 中 release是否有版本0.1.0信息
二、检查Pod工程中podspec文件是否配置有误
此步骤非常重要:1.进入Pod工程.podspec同级目录
2.执行pod lib lint 查看本地是否配置有误(如果没通过则查看原因)
3.执行pod spec lint 查看远程是否配置有误 (如果没有通过查看原因)
如果只是警告,在以下步骤使用此命令 pod repo push 仓库名 xxx.podspec --allow-warnings
三、创建远程私有仓库,并只将pod工程中的podspec文件提交到私有远程仓库
1.此处我又一次在GitHub创建了新的仓库
新仓库地址:https://github.com/matangfeng/MTFDemoPrivate.git
2.将私有仓库通过以下命令克隆到本地
pod repo add 仓库名 新仓库地址
(仓库名可以是任意含有意义的名称,仓库地址为步骤1中的地址)
pod repo add MTFDemoSpec https://github.com/matangfeng/MTFDemoPrivate.git
成功将会在电脑根目录下展示
3.将podspec文件通过以下命令上传的私有仓库,进入到刚刚创建的pod工程含有xxx.podspec目录,执行命令:
pod repo push 仓库名 xxx.podspec
(仓库名为与步骤2中的一致,xxx.podspec为pod工程的.podspec文件名)
pod repo push MTFDemoSpec MTFDemoToolClass.podspec
成功后终端如下:
以上步骤私有Pod工程创建成功
使用
在使用的工程中的Podfile文件中,因为是私有库记得导入远程私有仓库地址,然后导入.podspec小点前边的文件名,作为pod '文件名' ,'版本号' ,最后执行 pod install
如果团队开发,请记得让队友更新本地私有库 pod setup
图解
代码
文章中的代码都可以在我的GitHub MTFDemoToolClass、MTFDemoPrivate找到