【iOS】组件化进程之创建组件(Git)仓库

前言

    组件化开发已经在各个大小公司中普遍使用,尤其是一线大公司更是在忙不停的将原有项目中相对独立功能抽取出来做成独立组件。面试中也会经常问到组件化相关的知识, 在这里我将通过一步步构建简单的组件化项目来掌握这门技术。首先组件化的第一步就是需要将原有项目按照基础层、业务层、表现层架构层次抽取相对独立的功能模块出来做成相应的组件模块。组件模块则是由CocoaPods进行管理。对于一个企业项目,我们不太可能公开项目的代码,所以我们需要创建私有的CocoaPods仓库。接下来我会一步步来按照创建远程私有组件仓库,创建一个测试组件,将组件加入到组件仓库,以及项目中如何使用私有组件,这样一个流程来完成组件化的第一步学习。

创建私有CocoaPods仓库(组件仓库)

    首先选择一个基于Git开源的版本控制仓库,由于GitHub需要付费才能创建私有仓库,所以我选择了“码云/Gitee”。这里我们点击“新建项目”,项目名称为“RKComponents”, 选择语言“Objective-C”,选择开源证书“MIT License”,是否公开选择“私有”,点击“创建”,这样我们的组件仓库就创建好了。

创建私有组件Git仓库

    和创建组件仓库的流程一致,这里我将名称命名为“RKNetwork”,作为我的第一个组件。这里创建完成之后我们点击复制,拷贝一下RKNetwork组件的Git仓库地址,在接下来的配置组件的.podspec文件中会用到。

创建私有的组件(podspec)

  1. 打开终端,“cd workspace” 到工作目录,使用“pod lib create RKNetwork” 创建组件模板。这个过程中会提示要求配置一些设置,按照项目的需求进行配置就可以了。创建完成后模板目录如下:
  2. 修改RKNetwork.podspec配置文件
  3. 检验.podspec文件格式的正确性,cd 到RKNetwork.podspec同级目录下,在终端输入“pod lib lint”.


    验证成功 ~~~~~

  4. 将本地的RKNetwork组件模板工程上传到远端Git仓库:

    终端输入“git remote add origin RKNetwork组件仓库地址”,关联远程Git仓库。

    第一次提交代码我们需要拉取一下远端的代码合并到本地,终端输入“git pull origin master --allow-unrelated-histories”。
    拉取了远端代码后,会发现终端中提示合并代码冲突,主要是LICENSE和README.md这两个文件造成的。终端输入“git mergetool”,打开文件对比工具可以查看冲突部分的代码。这里我不去对比了,直接打开LICENSE和README.md这两个文件,将"<<<<<< HEAD" 到 “======”标识和这部分的代码删除,删除文件最后的 “>>>>>> 2855********”的标识,保存一下文件。终端输入:
    “git add .” 添加本地所有文件
    “git commit -m 'RKNetwork commit'” 提交本地文件修改
    “git push origin master” 将本地代码上传到远端Git仓库的master分支。

  5. 为刚刚提交的RKNetwork组件代码添加tag号,与.podspec文件中配置的保持一致。终端输入:
    “git tag -a 0.1.0 -m '添加tag标签'”
    “git push --tags”


  6. 检验远端.podspec文件格式的正确性,终端输入:“pod spec lint”

    验证通过 ~~~~~

将组件添加到组件仓库中

    首先进入到~/.cocopods/repos目录下,改目录为隐藏目录,终端输入:“default write com.apple.finder AppleShowFiles -bool true”,重启电脑。

    进入到~/.cocopods/repos目录下后,终端输入:“pod repo add RKComponents”,添加一个RKComponents的文件夹,用于存放组件。
    终端输入“pod repo push RKComponents RKNetwork.podspec文件”, 将RKNetwork组件添加到RKComponents组件仓库中。


到此我们就创建好了一个组件仓库和一个组件,并将组件添加到组件仓库中。

项目中使用私有组件

    首先我们搜索一下是否能够搜索到我们的私有组件,终端输入“pod search RKNetwork”.

    

    搜索到了,那么我们就可以使用了~~~~

    修改项目Podfile文件,添加如下代码:

    

    终端输入:“pod install”, 显示“Installing RKNetwork (0.1.0)”, 就成功啦!

    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值