• iOS 组件化开发之使用CocoaPod制作自己的远程私有库


      随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分。但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好的让拆分出去的业务工程能够独立运行,必须进行组件拆分并且实现组件服务化。

       组件化开发优点:

        1.组件和组件之间没有明确的约束。

        2.组件单独开发、单独测试,不能揉入主项目中开发,测试也可以针对性的测试。

      组件主要分为三类:

        基础功能组件:

        基础 UI 组件:

        产品业务组件:

      使用 CocoaPods 制作私有库实现过程:

      1、创建索引库:

        可使用 GitHub、Gitlab、Gitee、等,以 GitHub 为例:

        

      2、将创建的索引库添加到本地 Cocoapods 仓库中:

        pod repo add UCKit https://github.com/zhangtibin/UCKit.git

        

        路径是:~/.cocoapods/repos

      3、创建模板:

        pod lib create UCKit

      

      按提示输入选择后,创建完成,会自动打开 Xcode 工程:

      

      

      在 Classes 目录下,放入需要添加组件的文件:

      

      进入 Example 目录下,执行:pod install。

       

      4、**.podspec 文件中更改模板文件相关信息:

      

      5、验证 .podspec 文件:

        pod lib lint UCKit.podspec --allow-warning     

      6、将制作好的组件上传至 GitHub

        git remote add origin https://github.com/zhangtibin/UCKit.git

        git push -u origin master

       如果出现报错时,如下,可以采用修改冲突文件,并提交至 GitHub

      

      

      提交完之后

      

      7、使用:

        pod 'UCKit' , :git =>'https://github.com/zhangtibin/UCKit.git' 

      在执行:pod lib lint UCKit.podspec --allow-warning

      出现错误:- ERROR | [iOS] unknown: Encountered an unknown error (/usr/bin/xcrun simctl list -j devices

      

      xcode设置里面,将Command line Tools设置一下,在Xcode>preferences>Locations里面,设置之后再运行终端即可。

      

      解决后,当出现 ** passed validation表示验证成功:

      

      执行:git push -u origin master

      报错:

    ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'https://github.com/zhangtibin/UCKit.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.

      原因:远程repository和我本地的repository冲突导致的,而我在创建版本库后,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。

       解决方案:push前先将远程repository修改pull下来。   

      $ git pull origin master

      $ git push -u origin master

      推送之后,就会在 GitHub 上看到新提交的

      

  • 相关阅读:
    问题:关于抛出例外的一个问题。
    向北京球迷致敬!!!
    [下载]高质量C++C编程指南
    WinCE.NET中播放声音
    WINCE.NET中程序只运行一次
    解决vs2003开发PDA(wince.net4.2)调试与部署问题
    WinCE.NET中设置系统日期时间
    网页上发送mail(PHP)
    点阵字库预览工具 V1.0.0
    WINCE.NET4.2下如何获取程序当前运行目录
  • 原文地址:https://www.cnblogs.com/ZachRobin/p/11278260.html
Copyright © 2020-2023  润新知