项目的组件化

概述

  • 随着项目的不断迭代,项目的逻辑复杂度会越来越大,代码之间的耦合度也会越来越大,所有,对项目进行组件化处理刻不容缓.
  • 组件化,就是将代码模块化,然后上传至gitee或者gitlab上,做成私有库,通过cocoapods引入项目中,通过Lotusoot来完成组件之间的通信.

何如组件化

1.创建cocoapods私有引索库

它是所有的pods的一个索引,所有公开的pods都会放在这里.

  • 在gitee或者在gitlab上创建一个私有项目,命名为MySpecs
  • 通过 pod repo add MySpecs [私有引索库地址] 将引索库克隆至本地的~/.cocoapods/repos中,

2.创建私有pod项目(比如 JLAlertTool项目)

  • 在本地创建一个文件夹JLAlertTool;
  • cd [新建的文件夹]
  • pod lib create JLAlertTool,之后终端会弹出配置选项: iOS(平台), swift(语言), Yes(创建项目), None(创建测试工程)...
  • 进入Example,运行项目,在此项目中开发要写的模块
  • 代码测试没有问题后,将代码文件转移至JLAlertTool/Classes中,将此文件夹中的默认文件删除
  • 将图片\其他资源转移至JLAlertTool/Assets
  • cd Example, pod install,运行项目,看是否可以正常执行
  • 编辑JLAlertTool.podspec文件,
Pod::Spec.new do |s|

    # 名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
    s.name         = "JLAlertTool"  
    #版本号
    s.version      = "1.0.0"
    #支持的pod最低版本
    s.ios.deployment_target = '7.0'
    #简介
    s.summary      = "A delightful setting interface framework."
    #项目主页地址
    s.homepage     = "https://gitee.com/yuanjl/JLAlertTool"
    #许可证
    s.license              = { :type => "MIT", :file => "LICENSE" }
    #作者
    s.author             = { "yuanjl" => "lelebabyboy@qq.com" }
    #详细描述
    s.description       = = <<-DESC
                       详细描述
                       DESC
    #截图
    s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
    #项目的地址
    s.source       = { :git => "https://gitee.com/yuanjl/JLAlertTool.git", :tag => s.version }
    #需要包含的源文件
    s.source_files  = "JLAlertTool/Classes/**/*"
    #资源文件
    s.resource_bundles = {
    'JLAlertTool' => ['JLAlertTool/Assets/*']
  }
    #是否支持ARC
    s.requires_arc = true
    #依赖库,如有多个可以这样写
    s.dependency  'AFNetworking', '~> 2.3' 
end
复制代码
  • 编辑完成podspec文件后,需要验证此文件,pod lib lint,pod spec lint
  • git操作
1.git remote add origin [码云上建立的私有库的.git]
2.git add .
3.git commit -m "注释"
4.git pull origin master --allow-unrelated-histories (可能会有冲突,注意解决冲突后,重新2过程)
5.git push origin master
6.git tag 0.1.0
7.git push origin 0.1.0 (此时本地的私有库代码已经上传到了码云)
复制代码

3.发布私有库

  • cd [私有库路径] ('Example文件夹的上一级')
  • pod repo push MySpecs JLAlertTool.podspec --allow-warnings --verbose : 提交私有库至引索库中,可以在~/.cocoapods/repos/JLAlertTool中看得到

4.使用私有库

  • 在项目的Podfile文件中,编辑
source 'https://github.com/CocoaPods/Specs.git'  # 官方库
source 'https://gitee.com/yuanjl/MySpecs.git'   # 私有库

pod 'JLAlertTool'

复制代码

转载于:https://juejin.im/post/5a97b638f265da23884c7826

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值