iOS 컴포넌트 라이브러리 프로젝트 구조

iOS 프로젝트 구성 요소 라이브러리 설명

구성 요소 라이브러리 이름: test-sdk-ios

1. 설명

때때로 프로젝트는 컴포넌트 라이브러리와 git 라이브러리 사이에 일대일 대응 관계가 없습니다.동일한 유형의 라이브러리는 동일한 git 저장소에 통합되고 다른 분기로 구별될 수 있습니다.
일반적으로 프로젝트는 다음과 같이 구성됩니다. 주요 프로젝트 + 밀접하게 관련된 비즈니스 구성 요소(타사 얼굴 인식과 같은 특수 기능은 프로젝트를 다시 개발할 수 있음) + 일반 비즈니스 구성 요소(네트워크 라이브러리, 로그인 모듈 등의 2차 개발) + 기초 비즈니스 구성요소(로그, 공통 카테고리 메소드 세트, 데이터베이스 등) + 제3자 라이브러리 구성요소(afnetworking, 벽돌 등)

2. 지점 설명

wecom-temp-ffe54d5c448f0d3c4ce09ce14515cdd2.jpg위에서 언급했듯이 각 분기 이름은 구성 요소를 나타낼 수 있으며 구성 요소 업그레이드 및 업데이트는 분기 이름 + 버전 번호로 구분됩니다.

1. 지점 수준 디렉터리

분기 계층 디렉토리는 서로 다른 구성 요소 레벨에 해당합니다. 예를 들어 k_base는 기본 구성 요소 수준에 해당하고 k_common은 일반 비즈니스 구성 요소 수준에 해당하고 k_Thirds는 타사 구성 요소 수준에 해당하며 k_projectModule은 프로젝트. 분기 디렉터리 아래에는 각 구성 요소 분기 디렉터리가 있으며 하나의 구성 요소 분기 디렉터리는 하나의 구성 요소(module1, module2...)에 해당합니다.

2. 지점 그룹 디렉토리

분기 그룹 디렉토리는 여러 개의 분기를 가질 수 있지만 구성 요소와 관련된 분기만 저장할 수 있습니다
분기 그룹 디렉터리 명명 규칙: 구성 요소 이름. 예: LoginModule

3. 컴포넌트 분기

구성 요소 분기는 개발 분기입니다. module_dev_1.0.0과 같이 자신의 개발 요구에 따라 해당 분기를 생성할 수 있습니다.
제안: {{branch group directory}}에 릴리스, dev, hotfix와 같은 다른 분기에 해당하는 다른 디렉터리를 생성 합니다.
참고: {{branch group directory}} 아래의 디렉토리와 이름이 같은 브랜치가 있을 것입니다. 예를 들어 module1 아래의 {{module1}} 브랜치는 마스터 브랜치와 동일합니다 . 분기가 해제되면 수정된 내용을 이 분기에 병합해야 합니다. 원칙은 직접 수정이 허용되지 않는 것입니다.

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