组件化(第二篇)

一、本地私有库方案优化

二、远程私有库

三、如何使用远端私有库

四、远程私有库的升级

五、远程私有库依赖问题

六、远程私有库设计优化

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

存在的问题?

  1. 需要手动创建podspec文件,
  2. 没有使用git管理或者理解为手动使用git进行管理,
  3. 无法测试,需要再次手动创建测试工程。
  • 优化方案一
  1. 在本地私有库的主目录下创建测试工程(本地私有库创建请参考组件化(第一篇))。
  2. 拉取本地库源码文件到测试工程
  3. 在测试工程里面选中本地私有库源码文件,右键->Show in Finder,你会发现它们真实存在的路径是本地私有库Classes文件夹下面。这样,我们在测试工程里修改、测试好了,也就代表着我们的本地库测试、修改完毕。

问题:回想一下我们刚刚做的步骤,创建测试工程、创建Podfiel文件....., 是不是有点复杂?是的吧,那咱们继续看优化方案二。

  • 优化方案二
    借助pod
  • 终极方案

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

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

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

二、远程私有库

本地私有库缺点:

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

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

  1. 借助平台coding.net
  2. 创建私有索引库 AYSpecs
  3. 创建本地索引库 pod repo add AYBase url
  4. 创建远程私有库(存放框架源码)
  5. 创建一个pod私有库的模版库 AYBase
  • pod lib create AYBase
  • 核心代码拖入Classes文件夹中
  • pod install 安装测试
  • 编写描述文件、本地验证spec
  1. 上传本地库代码到远程仓库
  • git add .
  • git commit -m "xxx"
  • git remote add origin url (关联本地库和远程库,注意选择ssh?还是https?)
  • git push origin master
  1. 上传标签
  • git tag '0.0.1'(和描述文件的版本号保持一致)
  • git push --tags
  • 远程验证spec,pod spec lint
  1. 提交spec到本地索引库,会自动提交到远程索引库。
  • pod repo push AYBase AYBase.podspec
  1. pod seach AYBase

三、如何使用远端私有库

  1. source '官方路径'(远程索引库)
  2. source '私有索引库路径'(增加私隐索引库) ~到此为止,一个基本的远程私有库操作完毕。

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

四、远程私有库的升级

  • 修改私有库
  1. 基础设置
  2. Bases 、 Tools
  • 升级私有库
  1. 提交代码本地、远程
  2. 修改描述文件的版本号
  3. 打标签、远程验证spec
  4. 提交本地索引库 pod repo push AYBase AYSpec.podspec
  • 测试升级后的私有库:

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

五、远程私有库依赖问题

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

六、远程私有库设计优化

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

之后的操作:

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

脚注 生成一个脚注[1].

  • 关于 其CSDN博客地址 ,参考 这儿,
  • 关于 其简书地址 ,参考 这儿,
  • 关于 其iOS开发-GitHub地址 ,参考 这儿

  1. 这里是 脚注内容. ↩︎

你可能感兴趣的:(测试,git,运维)