组件仓库的实现总体分为两步,第一步本地仓库建立,等本地仓库创建好之后需要检测其格式和内容是否合规,等检测通关之后,第二步就需要关联git到远端仓库,等可以使用地址引入才算完成。
注意:根据开发规范,组件中的文件名称遵守swift命名空间,不要求带前缀,但是组件名称必须带前缀,前缀跟业务自己设计,后面跟随组件名称,组件名称必须能体现该组件的功能。
一、本地仓库
1、创建本地仓库
1、进入组件文件夹,所有组件建议是放到一个文件夹,方便后面使用
例:
cd /Users/xxx/Desktop/HandUniversity/Module
2、创建模块
这个时候我们使用脚本命令来创建会更快更简单,命令如下:
pod lib create HURouter
等待输入完成,回车命令,等待。其中HURouter就是你自定义的一个组件名字,也就是你的其中一个组件或者业务模块,然后根据提示,生成pod工程模板。如下图所示:
3、替换文件,把需要的文件放进去
4、执行pod命令,引入工程
pod install
此时,我们的文件可以看到已经被引入Example工程中了
5、配置信息
执行build RUN,检查工程是否能独立测试运行,有问题就修复,没有问题就可以配置Podspec文件了,这是关键的一步,必须按规定配置。配置文件位置和信息如下:
2、使用本地仓库
1、引入pod
首先,打开我们的主工程App,在Podfile文件中配置本地仓。如下:
2、集成
执行pod命令
pod install
这时出现下面这种情况,就说明本地仓库已经构建完成了,这个时候要关联到远端了。
二、关联到远端
1、创建git仓库,使用gitLab为例
组件名称建议加上前缀,代码遵循swift命名空间可以不加,但是组件库要有区分,其中HU为HandUniversity,后面跟上我们的组件库名称,名称要有代表性,能直观确定其功能性,不要乱起,遵循命名规范。地址使用中划线,保持其他端统一。
2、Git关联
1、初始化git
git init
2、添加代码
git add .
3、配置上传信息,须符合git上传规范
git commit -m "feat:第一次添加路由组件"
4、关联远端仓库
git remote add origin https://developer-center.wxhand.com/gitlab/front_ios/hu-router.git
5、提交到远端master
git push origin master
6、查看是否已经上传完成
7、组件的版本控制
组件,需要对外提供依赖关系。所以我们还得多做一步操作,那就是修改podspec文件。我们可以根据不同的tag对应不同的podspec文件来进行版本控制和升级。执行:
git tag 1.0
git push --tags
刷新gitLab,会看到多了一个tag分支:
3、验证Podspec文件和工程是否合规
代码问题和配置问题出错,会导致验证失败。这个时候终端先回到组件的根目录执行:
pod lib lint --verbose --allow-warnings
如果组件依赖了我们自己实现的组件,使用下面的方式验证
pod spec lint --verbose --use-libraries --allow-warnings --sources='https://developer-center.wxhand.com/gitlab/front_ios/hu-private-podspecs.git,https://github.com/CocoaPods/Specs.git'
这个时候脚本会自动帮我们验证,等执行完毕,有问题就去修改相关信息,然后再执行验证命令,等待结果:
出现xxx passed validation.,这说明我们的组件已经配置成功。
4、提交组件到远端仓库组
这个时候我们引入,只能使用路径,我们想直接使用的话只能引入直接路径,这样还是很麻烦,那就需要我们引入到本地的索引库了
执行:
pod repo push HUPrivatePodspecs HURouter.podspec --allow-warnings
等待一会,出现下面情况就说明成功了
这个时候,我们就可以直接使用了,项目添加repo地址,然后pod方式也能正常引入了