美文网首页
在现有的工程实施组件化

在现有的工程实施组件化

作者: RichieQ | 来源:发表于2021-06-18 14:34 被阅读0次

    CTMediator是支持url方案的,调用performActionWithUrl即可,url格式为aaa://targetA/actionB?id=1234

    一、准备工作

    1、私有配置脚本https://gitee.com/RichieQuan/config-private-pod,casatwy 大神的配置脚本https://github.com/casatwy/ConfigPrivatePod
    2、将ConfigPrivatePod配置脚本放在和需要实施组件化的工程同一级目录,后面的组件工程路径也是放在同一级目录,目录结构如下

    Project
    ├── ConfigPrivatePod(配置脚本)
    ├── MainProject(现有工程)
    ├── A (组件工程)
    ├── B (组件工程)
    ├── .. (组件工程)
    

    3、创建组件仓库

    二、组件化实施

    组件化是循序渐进的,步骤类似。现在以把业务A抽出来作为组件,那么我们需要为此创建两个私有pod:A业务Pod(以后简称A Pod)、方便其他人调用A业务的CTMediator category的pod(以后简称A_Category Pod)。这里的A_Category Pod的本质只是一个方法,它对A Pod不存在任何依赖。

    (一)创建A pod

    1、用xcode创建工程A,保存到和现有工程同一级目录
    2、通过脚本配置私有pod

    a、cd到ConfigPrivatePod目录,
    b、执行./config_target.sh,根据提示分别填入私有A Pod的仓库地址htpps、ssh地址、主页地址

    3、编写Target-Action相关代码

    1、将主工程中A业务的代码拷贝到工程A的Source文件夹目录下(该目录里面的代码是A pod发布的内容),在Target_A.m写Action相关方法供A_Category调用
    2、在Category目录下,CTMediator+A.{h/m}编写调用Target_A代码,这块代码后面是拷贝到A_Category Pod里面发布的
    3、在ViewController.m里可以写下测试代码

    image.png
    image.png
    image.png
    image.png

    4、验证A.podspec是否正确,输入命令如果A业务有依赖私有库,需要在--sources写入私有仓库地址,不然会提示私有库找不到

    pod lib lint --sources='https://gitee.com/RichieQuan/PrivatePodsec.git,https://github.com/CocoaPods/Specs.git'
    

    5、提交代码,HEAD默认指向当前开发分支

    cd到A工程目录下
    git add .
    git commit -m '说明'
    git push origin HEAD 
    

    6、发版本

    cd到A工程的upload.sh所在目录
    执行 ./upload.sh
    
    (二)创建A_Category pod

    1、用xcode创建工程A_Category,保存到和现有工程同一级目录
    2、通过脚本配置私有pod

    a、cd到ConfigPrivatePod目录,
    b、执行./config_category.sh,根据提示分别填入私有A_Category Pod的仓库地址htpps、ssh地址、主页地址
    3、删除工程A_Category下的Category目录下的文件, 将A工程Category目录下的代码拷贝到A_Category工程的Category文件夹中
    4、验证A.podspec是否正确,输入命令如果A业务有依赖私有库,需要在--sources写入私有仓库地址,不然会提示私有库找不到

    pod lib lint --sources='https://gitee.com/RichieQuan/PrivatePodsec.git,https://github.com/CocoaPods/Specs.git'
    

    5、提交代码,HEAD默认指向当前开发分支

    cd 到工程A_Category目录下
    git add .
    git commit -m '说明'
    git push origin HEAD 
    

    6、发版本

    cd到A_Category工程的upload.sh所在目录
    执行 ./upload.sh
    
    三、声明

    本文借鉴casatwy大神的文章和脚本,原文地址为https://casatwy.com/modulization_in_action.html

    相关文章

      网友评论

          本文标题:在现有的工程实施组件化

          本文链接:https://www.haomeiwen.com/subject/ijykyltx.html