组件化远程私有库解决方案(cocoapods基于git svn)----高级版
Posted Cocoa开发者社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组件化远程私有库解决方案(cocoapods基于git svn)----高级版相关的知识,希望对你有一定的参考价值。
前言
随着业务越来越庞大,在单工程中,app中代码逐渐越来越大,面对高耦合和难以复用的模块,我们就需要进行重构了。而面对多条业务线,组件化是一种优秀的解决方案,将需要的组件以pod私有库形式安装到主工程中,组件间各自独立,解耦,仅仅依赖一个中间件进行通讯。那么对于各个组件托管到远程平台最常用的是git,git的优越性也无需赘言,但是很多公司对于代码管理往往是本公司的svn服务器,本文的重点也是讲解一下svn服务器托管的操作,这在网上资源是很少有正确的,这篇文章带你真正学会cocoapods基于svn托管方式。
郑重声明
本文是一篇高级教程,不提供入门基础教程。
首先我们以git为基础讲解代码托管原理,请看下图:
1.首先我们需要一个远程托管仓库,git或者svn。
2.必须明确一个概念我们需要两个远程仓库,一个是远程的索引库和一个远程的源码库,cocoapods 基本原理也是这样的,平时采用的方式和我们组件化唯一区别就是将公有变为私有。
3.当我们将代码传到远程源码仓库以后,需要在进行第5步操作,向私有索引库提交,这里需要解释一下这个过程,当我们通过命令行操作向本地私有索引库推入索引文件,同时也会添加到远程索引库,这样当小伙伴要使用你的库,只需要更新他本地的就可以了。
那么以上就是git 方式的主要操作,下面我重点演示svn方式。
1.选用第三方svn服务器作为测试:
这里允许创建两个库,刚好满足我们私有索引库和代码库的创建,
2.接下来我们需要将远程索引库,添加到本地,这里为了满足svn 操作我们需要安装一个 cocoapods-repo-svn插件,参考 https://github.com/dustywusty/cocoapods-repo-svn
pod repo-svn add Name Url
然后我们会在.cocoapod看到这个文件夹
然后终端可以查看一下相应的索引库
pod repo
这里就有我们的索引库 SpecsRepo。
3.接下来我们需要将远程源码仓库克隆到本地,采用Cornerstone 工具
4.创建本地私有模板库
pod lib create Name
私有模板库
我们需要把 .git .gitignore .travis.yml 这是哪个文件删掉,然后将这个库拖入到 svn 本地仓库的 trunk下面。当然这个里面包括你的组件库文件。
5.编写podsepc 文件
podsepc 文件编写
pod lib lint
完成以后使用Cornerstone工具提交代码至远程。
6.远程打标签tag
svn 终端命令行好像没有直接打tag 的命令,我们可以直接通过Cornerstone打tag,需要注意的是标签的tag和podsepc 文件中的版本一致。
远程打标签可以在tag中查看版本
7.最后一步提交spec至私有索引库
pod repo-svn push Name xx.podsepc
需要注意的是cd 到 本地trunk 文件夹目录下,才能包含xx.podsepc 文件。
至此我们大功告成!我们可以通过终端 搜索一下我们的库
pod search BCBaseLib
这里我已经提交了两个版本。
8.使用
Podfile文件编写
可能会出现以下问题
pod install 报错找不到组件
可以更新一下本地索引库 pod repo-svn update --no-repo-update
2>路径不对
以上呢就是基于svn的所有主要的过程,一些细节问题大家可以自行尝试。
CocoaChina
全球最大
苹果开发中文社区
以上是关于组件化远程私有库解决方案(cocoapods基于git svn)----高级版的主要内容,如果未能解决你的问题,请参考以下文章
基于SVN服务器及cocoapods-repo-svn插件进行组件化私有库管理