美文网首页
iOS 组件化开发(一):远程私有库的基本使用

iOS 组件化开发(一):远程私有库的基本使用

作者: flyWhite | 来源:发表于2019-11-21 13:16 被阅读0次

    随着项目功能的不断增加,越来越多的开发人员,业务主线也随之越来越多,造成耦合越来越严重,编译越来越慢,测试不独立等一系列问题。为了解决此类情况,我们可以考虑组件化开发.

    • 概念: 组件话就是将一个单一的工程项目,分解成为各个独立的组件,然后按照某种方式,任意组织成一个拥有完整业务逻辑的工程
    • 优势
      • 独立:独立编写、编译、运行、测试
      • 重用:功能代码的重复使用。比如不同项目使用同一功能模块
      • 高效:任意增删模块,实现高效迭代
      • 组件化还可以配合二进制化, 提高项目编译速度
    • 组件分类 大体上分三类:基础组件、功能组件和业务组件
      • 基础组件:也称为公共组件,存放平时定义的宏、常量、协议、分类、对必要的第三方的封装类,以及各种处理工具类,如时间、日期、设备信息、文件处理、沙盒管理等
      • 功能组件:自定义视图控件、一些特定功能的封装(如录音、播放音频封装)
      • 业务组件:各种业务线

    步骤归纳

    1.创建远程索引库和私有库
    2.将远程索引库添加到本地 pod repo add 索引库名称 索引库地址
    3.在本地创建一个pod模板库 pod lib create 组件名称 将框架的核心代码添加到Classes目录下 本地安装测试核心代码是否可用 pod install 修改Spec描述文件 将修改好的模板库上传至远程私有库
    4.上传代码和打标签
    git init
    git add .
    git commit -m "提交描述"
    git remote add origin 远程私有库地址
    git push origin master
    git tag '0.1.0'
    git push --tags
    5.提交spec至私有索引库
    pod spec lint --private
    pod repo push 索引库的本地名称 xx.podspec
    6.使用
    source 官方索引库url
    source 私有索引库url
    pod '组件名称'
    pod install

    一、创建私用索引库

    这里以码云为例,创建一个FYSpec的私有索引库,这玩意的作用如其名,就是用来索引的


    创建远程索引
    仓库

    二、本地添加私有索引库

    1、查看本地索引库
    pod repo
    
    trunk

    如图,一般这里只有github的公有索引库,这里并没有方才的FWSpec

    2、添加私有索引库

    将我们刚刚新建的私有索引库FWSpec添加到本地

    // pod repo add 索引库名称 索引库地址
    // pod repo remove 索引库名称   /*删除本地索引*/
    
    pod repo add FWSpec https://gitee.com/flyWhite/FWSpec.git
    
    //再次查看
    pod repo
    
    pod repo 再次查看

    三、创建组件库

    1、创建远程代码仓库

    创建基础组件,这里以FWBase为例


    FWBase

    2、本地快速创建模版库

    到合适的位置创建一个与组件名相同的文件夹,cd进去后,使用如下命令

    //pod lib create 组件名
    
    pod lib create FWBase
    
    pod lib create FWBase

    这里根据自己情况选择


    选择

    3、添加组件内容

    创建完成后会自动帮我们打开相应的Example项目,FWBase目录中会出现如图这些文件,我们把基础组件相关的东西丢到Classes文件夹中,并且把ReplaceMe.m文件删除


    ReplaceMe.m文件删除

    Tip:默认Classes文件夹中存放的文件就是pod install时要下载下来的文件,当然可以通过修改spec文件的配置来更改位置

    4、安装与测试本地库

    在Example项目的Podfile文件中可以看到

    pod 'FWBase', :path => '../'
    

    模板库已经默认帮我们在Podfile中指定了FWBase.podspec的位置,使组件FWBase可以正常安装使用和方便测试


    pod install
    如上图安装成功,Xcode打开项目,也能看到刚刚添加的文件 屏幕快照 2019-11-21 上午10.30.41.png
    到这里,本地测试组件没问题后,我们接下来要将podspec文件进行修改,然后上传至私有索引库

    5、修改Spec

    具体的配置说明可以参考Cocoapods创建第三方框架

    .podspec
    主要的修改内容
      s.name             = 'FWBase'
      s.version          = '0.1.0'
      s.summary          = 'FWBase.'
      s.description      = <<-DESC
    FWBase是基础组件库,包括分类和常用工具
                           DESC
      s.homepage         = 'https://gitee.com/flyWhite/FWBase'
    s.source           = { :git => 'https://gitee.com/flyWhite/FWBase.git', :tag => s.version.to_s }
    s.source_files = 'FWBase/Classes/**/*'
    
    
    主要的修改内容

    四、上传组件代码

    1、将代码提交到组件仓库

    git add .
    git commit -m 'firstCommit'
    git remote add origin https://gitee.com/flyWhite/FWBase.git
    // 第一次push如果报错的话可以加上-f
    // git push -f origin master
    git push origin master
    
    git push -f origin master

    2、打标签

    标签0.1.0与spec中的s.version保持一致

    git tag '0.1.0'
    git push --tags
    
    打标签
    码云效果

    五、提交podspec到私有索引库

    在上传spec文件前我们可以做一个验证来节省时间

    1、本地验证Spec的必填字段

    // 本地验证不会验证 s.source 中的tag
    忽略该警告
    pod lib lint
    

    Tip:验证私有库提示 如果验证的是私有库,则在后面加上--private,否则会有警告,你可以选择--allow-warnings

    pod lib lint --private

    2、远程验证

    // 远程验证会验证 s.source 中的tag,如果此时没有打上相应的标签则会报错
    pod spec lint
    

    如果你刚才没有打标签,并上传至远程私有库进来进行验证,是会报错的
    在打完并上传tag后再进行远程验证,就会验证成功了,验证成功后我们就可以进行下一步操作:提交podspec文件到索引库

    pod spec lint --private

    3、提交podspec

    //pod repo push 私有索引库名称  spec名称.podspec
    
    pod repo push FWSpec FWBase.podspec
    

    这里的操作过程:先将我们的代码直接push到本地索引库FWSpec,推送后自动会帮我们同步到远程索引库


    pod repo push FWSpec FWBase.podspec

    再来看看码云上的私有索引库FWSpec


    码云上的FWSpec
    来测试下我们的组件
    pod search FWBase
    

    六、使用私有库

    1、这时我们可以来试试通过pod形式来添加组件FWBase,创建一个新的项目,cd到工程目录下

    pod init
    

    2、在Podfile的最顶部添加如下描述

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://gitee.com/flyWhite/FWSpec.git'
    

    Tip:source 'https://github.com/CocoaPods/Specs.git'这里保证公有库的正常使用,但是速度比较慢,如果更新过本地库可以不用写

    3、添加使用组件LXFBase

    pod 'FWBase'
    

    4、安装组件

    pod install
    

    本文参考:https://juejin.im/post/5ac5d5abf265da2396129e63
    http://zhongqing05.top/2019/11/06/iOS组件话开发一/

    相关文章

      网友评论

          本文标题:iOS 组件化开发(一):远程私有库的基本使用

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