组件化

作者: Maji1 | 来源:发表于2019-12-10 17:01 被阅读0次

    组件化的优点:
    1、降低业务之间的耦合度

    一、创建远程私有仓库

    • a.创建私有库
    • b.将私有库关联到本地
    cd ~/.cocoapods/repos
    pod repo add 'Spec' 'https://gitee.com/majili/Spec.git'
    

    二、创建私有代码仓库

    1、创建文件夹Lib
    2、进入到Lib文件夹下,执行命令:

    // Test组件名称
    pod lib create Test
    

    出现如下提示:

    What platform do you want to use?? [ iOS / macOS ]
    >iOS
    What language do you want to use?? [ Swift / ObjC ]
    > Swift
    Would you like to include a demo application with your library? [ Yes / No ]
    >Yes 
    Which testing frameworks will you use? [ Quick / None ]
    >None 
    Would you like to do view based testing? [ Yes / No ]
    >No 
    
    3、创建完成后会自动打开工程 Test

    ReplaceMe.swift文件所在的位置就是我们要写的组件放置的位置。

    文件位置

    将我们的demo放在ReplaceMe.swift所在的位置,ReplaceMe.swift可以删除。
    进入Test文件路径下,执行:

    pod install
    

    4、前往码云创建Test仓库

    5、创建成功后配置Test.podspec文件

    .podspec
      // 添加文件夹的配置
      s.subspec 'Controller' do |controller|
          controller.source_files = 'PHUISuggest/Classes/Controller/**/*'
      end
      s.subspec 'Extension' do |extension|
          extension.source_files = 'PHUISuggest/Classes/Extension/**/*'
      end
      s.subspec 'Model' do |model|
          model.source_files = 'PHUISuggest/Classes/Model/**/*'
      end
      s.subspec 'View' do |view|
          view.source_files = 'PHUISuggest/Classes/View/**/*'
      end
      //配置图片资源
      s.resource = "PHUISuggest/Assets/source.bundle"
    #   s.resource_bundles = {
    #     'PHUISuggest' => ['PHUISuggest/Assets/*']
    #   }
    

    6、提交开发的组件Test到远程仓库

    git remote add origin https://gitee.com/majili/Test.git #添加远程仓库
    git push -u origin master #第一次可能会报错可尝试用 git push -u origin master -f 可能会覆盖远程的修改
    git add . #记得后面一定要有 .
    git commit -m "创建我的组件"
    git push -u origin master
    git tag '0.1.0' #注意:这里的tag号必须和.podSpec文件的版本号一致
    git push --tags
    

    上面git remote add origin https://gitee.com/majili/Test.git可能出现问题:
    fatal: not a git repository (or any of the parent directories): >.git
    表示在当前指向的文件夹里找不到库(.git文件夹)
    解决办法是对目录进行初始化

    git init
    git push -u origin master
    

    可能会出现
    error: src refspec master does not match any.
    error: failed to push some refs to>' https://gitee.com/majili/Test.git'
    出现错误的主要原因是码云中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并[注:pull=fetch+merge

    git pull --rebase origin master
    

    建议使用GitHub Desktop或者SourceTree提交开发的组件的代码

    7、本地验证和远程验证(在工程目录下)

    • 本地验证pod能否通过验证
    pod lib lint --use-libraries --allow-warnings
    

    --verbose:有些非语法错误是不会给出错误原因的,这个时候可以使用--verbose来查看详细的验证过程来帮助定位错误。
    --use-libraries:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。
    --allow-warnings:表示允许警告。

    • 从本地和远程验证pod能否通过验证
    pod spec lint --use-libraries --allow-warnings
    

    8、将远程的spec库关联到本地:
    spec文件里添加Test组件版本号

    spec
    将添加的 0.1.0 文件提交到远程

    9、在主工程下添加依赖Test组件,pod installpod update

    相关文章

      网友评论

          本文标题:组件化

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