背景:客户端在公司业务发展的过程中体积越来越庞大,其中堆叠了大量的业务逻辑代码,不同业务模块的代码相互调用,相互嵌套,代码之间的耦合性越来越高,调用逻辑会越来越混乱。当某个模块需要升级的时候,改动代码的时候往往会有牵一发而动全身的感觉,特别是如果工程量出设计的时候没有考虑接口的封装,而将大量的业务代码与功能模块代码混在一起时,将来的升级就需要对代码进行大量修改及调整,带来的功工作量是非常巨大的。这就需要设计一套符合要求的组件之间通信的中间件。模块化可以将代码的功能逻辑尽量封装在一起,对外只提供接口,业务逻辑代码与功能模块通过接口进行弱耦合。
组件化开发流程及发布
1,创建组件化工程
终端命令:pod lib create <组件名>
运行结果如下图:

注:服务器创建一个仓库,clone下来之后把创建的组件仓库放进去,便于组件代码管理
2,编写podSpec⽂文件

注:组件的版本号要跟远端仓库的版本号一致(这里好像只能写数字,所以远端的branch也是数字的,后面再探索完善下),组件依赖其他第三方库的话,push的时候一定要加上--use-libraries
s.source_files一定要写对,路径是和podspec在同一层级的,要是有子文件夹的话如下图方式书写,如下图:

3,编写组件库代码

注:提交的组件记得先本地跑一下,确定没问题再push到仓库
4,本地组件库和远程组件库关联
终端命令:pod repo add <组件名> https://github.com/xiaoshu0629/xiaoshu.git(这是你的仓库地址)
注:后面的url是仓库的远程地址,如果之前添加过错误的,用命令pod repo list查看,先移除掉错误的
5,进入到组件仓库目录,推送本地podspec⽂文件到远端SpecRepository
终端命令:pod repo push <组件名> --allow-warnings --verbose --use-libraries
注:此命令是将本地的组件podspec⽂文件上传到 cocoapods组件索引库,而不是公司组件索引库,如果误操作,会造成代码泄露露,切记切记,自己的GitHub开源仓库可以这么操作
终端命令:pod trunk push <组件名>.podspec
6,将组件集成到项⽬工程中
优先使⽤用本地库,避免从github下载三⽅库,在工程的podfile文件中添加你的仓库地址,如: source https://github.com/xiaoshu0629/xiaoshu.git,然后添加你的组件:pod '<组件名>'
最后安装:
终端命令:pod install
如果觉得对你有帮助的话,点个赞哦!