iOS最新组件实现

组件仓库的实现总体分为两步,第一步本地仓库建立,等本地仓库创建好之后需要检测其格式和内容是否合规,等检测通关之后,第二步就需要关联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方式也能正常引入了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38201792/article/details/132187700
今日推荐