iOS组件库项目结构

iOS项目组件库说明

组件库名称:test-sdk-ios

一、说明

有时项目没有做到组件库与git库一一对应,可以将同一类型的库整合到同一个git仓库中,通过不同的分支来区分。
一般而言项目由这些组成:主工程+强相关业务组件(特定功能如第三方人脸识别可二次开发的项目)+通用的业务组件(二次开发的网络库、登录模块等)+基础业务组件(日志、通用的类别方法集、数据库等)+第三方库组件(afnetworking、masonry等)

二、分支说明

wecom-temp-ffe54d5c448f0d3c4ce09ce14515cdd2.jpg 如上所言,每一个分支名可代表一个组件,组件升级更新则有分支名+版本号来区分

1、分支层级目录

分支层级目录对应不同的组件层级,如k_base对应基础组件层级,k_common对应通用业务组件层级,k_Thirds对应第三方组件层级,k_projectModule对应项目强相关业务组件。分支目录下是各个组件分支目录,一个组件分支目录对应一个组件(module1、module2。。。)

2、分支组目录

一个分支组目录可以有多个分支,但是只允许存放该组件相关的分支
分支组目录命名规则:组件名。如:LoginModule

3、组件分支

组件分支即开发分支,可以根据自己开发需求创建对应分支,如module_dev_1.0.0
建议:在{{分支组目录}}建立不同的目录,对应不同的分支,如release、dev、hotfix,方便管理
注意:在{{分支组目录}}下都会有一个与该目录同名的分支,如module1下的{{module1}}分支,相当于master分支,其他分支发布之后需要将修改的内容合并到该分支,原则上不允许直接修改

4、特殊分支

master分支:原本git仓库的默认分支,以后用不到
createPodDemo分支:新的组件从该分支创建出来

版本说明

1、相关说明

标签与版本

标签是git管理的一种手段,知识git某个提交的字符串描述,与库的版本不是完全相等的。如module1的{{1.0.0}}版本,可以对应git上饿{{1.0.0}}标签,也可以对应{{module1-1.0.0}}标签
cocoapods的版本管理及git标签的关系。
cocoapods的版本取的是module1.podspec文件中version字段的值,与git标签没有关系。
cocoapods获取某个版本的流程:

pod 'module',:git=>'git仓库地址',:tag=>'module-1.0.0'
复制代码

这里直接通过git地址查找

四、安装及开发

1、远程引用

通过远程引用,知识对代码的引用,没有修改的权限。适合发布版本或者在开发模式不需要修改源码的情况。

引用tag和分支都可以,频繁修改就用分支
pod 'module',:git=>'git仓库地址',:tag=>'module-1.0.0' 
pod 'module',:git=>'git仓库地址',:branch=>'branchName',subspecs => ['core','someother']
复制代码

2、本地引用

在开发模式下,当需要对组件进行修改时,需要将组件改为本地引用
1、将代码下载到与主工程同级目录。
2、切到对应组件版本的分支,如module1-0.2.0-hotfix,切换至该分支。 3、修改podfile,将module1的远程引用改成本地引用

pod 'module1', :path => '../k_projectModule'
复制代码

本地开发建议
我们很可能会同事对多个组件库进行修改,一个本地的k_projectModule库是无法满足的,可以将k_projectModule复制一份,将k_projectModule目录名改成相应的组件(如module2),然后在module2中切换到想要修改的分支。这样就不同频繁的暂存文件和切换分支。

五、新建组件

1、确定组件的层次。
2、从createPodDemo分支创建新分支。
3、第三方组件可以直接取找到源码和podspec,拖入仓库即可。

猜你喜欢

转载自juejin.im/post/7099374256953229326