组件化(第二篇)

组件化

一、本地私有库方案优化
二、远程私有库
三、如何使用远端私有库
四、远程私有库的升级
五、远程私有库依赖问题
六、远程私有库设计优化

一、本地私有库方案优化:

存在的问题?

  1. 需要手动创建podspec文件,
  2. 没有使用git管理或者理解为手动使用git进行管理,
  3. 无法测试,需要再次手动创建测试工程。
  • 优化方案一
  1. 在本地私有库的主目录下创建测试工程(本地私有库创建请参考组件化(第一篇))。
    组件化(第二篇)_第1张图片
    在这里插入图片描述
  2. 拉取本地库源码文件到测试工程


    组件化(第二篇)_第2张图片
    在这里插入图片描述
  3. 在测试工程里面选中本地私有库源码文件,右键->Show in Finder,你会发现它们真实存在的路径是本地私有库Classes文件夹下面。这样,我们在测试工程里修改、测试好了,也就代表着我们的本地库测试、修改完毕。
    问题:回想一下我们刚刚做的步骤,创建测试工程、创建Podfiel文件....., 是不是有点复杂?是的吧,那咱们继续看优化方案二。
  • 优化方案二
    借助pod
    组件化(第二篇)_第3张图片
    在这里插入图片描述

    组件化(第二篇)_第4张图片
    在这里插入图片描述
  • 终极方案

创建一个Pods库的模版库:pod lib create AYBase


组件化(第二篇)_第5张图片
在这里插入图片描述

组件化(第二篇)_第6张图片
在这里插入图片描述

组件化(第二篇)_第7张图片
在这里插入图片描述

组件化(第二篇)_第8张图片
在这里插入图片描述

组件化(第二篇)_第9张图片
通过命令创建模版库

此时打开测试工程并没有我们的Pods资源库代码,如下图。怎么搞过来?


组件化(第二篇)_第10张图片
在这里插入图片描述

通过pod install获取我们的Pods资源库,如下图:


组件化(第二篇)_第11张图片
在这里插入图片描述

二、远程私有库

本地私有库缺点:

  1. 需要指明path。因为宿主工程里的Podfile文件指明了私有库路径,一旦宿主工程修位置发生变化,有可能安装本地私有库失败。
  2. 版本升级不好维护。如果本地私有库有两个版本0.1.0和0.2.0。我想安装0.1.0怎么安装?没法安装,因为本地私有库没有tag。
  3. 没办法多人合作开发。因为你这个库放在本地,其他人用不了。

创建远程私有库:
远程表示我的队友也可以去下载,私有代表只有我的队友可以下载,别人下载不了。

  1. 借助平台coding.net
  2. 创建私有索引库 AYSpecs


    组件化(第二篇)_第12张图片
    在这里插入图片描述

    组件化(第二篇)_第13张图片
    在这里插入图片描述

    组件化(第二篇)_第14张图片
    在这里插入图片描述
  3. 创建本地索引库 pod repo add AYBase url


    组件化(第二篇)_第15张图片
    在这里插入图片描述

    组件化(第二篇)_第16张图片
    在这里插入图片描述
    组件化(第二篇)_第17张图片
    在这里插入图片描述
  4. 创建远程私有库(存放框架源码)


    组件化(第二篇)_第18张图片
    在这里插入图片描述
  5. 创建一个pod私有库的模版库 AYBase
  • pod lib create AYBase


    组件化(第二篇)_第19张图片
    在这里插入图片描述
  • 核心代码拖入Classes文件夹中


    组件化(第二篇)_第20张图片
    在这里插入图片描述
  • pod install 安装测试


    组件化(第二篇)_第21张图片
    在这里插入图片描述
  • 编写描述文件、本地验证spec


    组件化(第二篇)_第22张图片
    在这里插入图片描述

    组件化(第二篇)_第23张图片
    在这里插入图片描述
  1. 上传本地库代码到远程仓库
  • git add .
  • git commit -m "xxx"
  • git remote add origin url (关联本地库和远程库,注意选择ssh?还是https?)
  • git push origin master


    组件化(第二篇)_第24张图片
    在这里插入图片描述
  1. 上传标签
  • git tag '0.0.1'(和描述文件的版本号保持一致)
  • git push --tags
  • 远程验证spec,pod spec lint
    组件化(第二篇)_第25张图片
    在这里插入图片描述
  1. 提交spec到本地索引库,会自动提交到远程索引库。
  • pod repo push AYBase AYBase.podspec
    组件化(第二篇)_第26张图片
    在这里插入图片描述

    组件化(第二篇)_第27张图片
    在这里插入图片描述
  1. pod seach AYBase


    组件化(第二篇)_第28张图片
    在这里插入图片描述

三、如何使用远端私有库

组件化(第二篇)_第29张图片
在这里插入图片描述
  1. source '官方路径'(远程索引库)
  2. source '私有索引库路径'(增加私隐索引库)
组件化(第二篇)_第30张图片
在这里插入图片描述

组件化(第二篇)_第31张图片
在这里插入图片描述

~到此为止,一个基本的远程私有库操作完毕。

总结:此时私有库名称、位置随便改,不会影响使用者。可以独立测试。

四、远程私有库的升级

  • 修改私有库
  1. 基础设置
  2. Bases 、 Tools
  • 升级私有库
  1. 提交代码本地、远程


    组件化(第二篇)_第32张图片
    在这里插入图片描述
  2. 修改描述文件的版本号


    组件化(第二篇)_第33张图片
    在这里插入图片描述
  3. 打标签、远程验证spec


    组件化(第二篇)_第34张图片
    在这里插入图片描述
  4. 提交本地索引库 pod repo push AYBase AYSpec.podspec


    组件化(第二篇)_第35张图片
    在这里插入图片描述

    组件化(第二篇)_第36张图片
    在这里插入图片描述
  • 测试升级后的私有库:

// pod install(以前会更新本地索引库、现在不会了)
pod update --no-repo-update(会更新)


组件化(第二篇)_第37张图片
在这里插入图片描述

五、远程私有库依赖问题

基础库依赖于其他库,安装后跑不起来,怎么解决?

组件化(第二篇)_第38张图片
在这里插入图片描述

组件化(第二篇)_第39张图片
在这里插入图片描述

六、远程私有库设计优化

引入问题:我只需要一个base库,还要安装整个库吗?
举例:AYBase里面有Category、Tools等等(后期会更多),现在我仅仅只需要Category里面的功能,我安装AYBase,会不会太大了?
解决方案:
把一个大的基础组件划分为几个子库?

组件化(第二篇)_第40张图片
在这里插入图片描述

组件化(第二篇)_第41张图片
在这里插入图片描述

组件化(第二篇)_第42张图片
在这里插入图片描述

之后的操作:

  • 提升s.version版本号
  • 提交代码
  • 打标签
  • 推送spec到本地索引库。

未完待续,敬请期待

脚注

生成一个脚注[1].

  • 关于 其CSDN博客地址 ,参考 这儿,
  • 关于 其掘金地址 ,参考 这儿,

  1. 这里是 脚注内容. ↩

你可能感兴趣的:(组件化(第二篇))