博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pod 私有仓库构建
阅读量:5273 次
发布时间:2019-06-14

本文共 3153 字,大约阅读时间需要 10 分钟。

 Pod 私有仓库构建

  1. 创建`私有仓库索引库`(iOS)
  2. 添加`私有仓库索引库`到本地repo管理
  3. 创建自己的`组建库工程
  4. 上传`组建库工程`到`私有仓库索引库`
  5. App工程调用`组建库工程`

 

目的

私有库管理,是用来简化代码工程结构,实现代码复用和工程管理的方案,   几乎每个公司都有自己的私有仓库进行组件化管理工程。

1. 创建`私有仓库索引库`

描述

  • 私有仓库索引库`是管理各个组件库版本用的。 我们这里可以理解为一个空的git 仓库,以下可以把名字区分开理解
  • 私有库:指的是我们真正放置组件代码的地方。
  • 索引库:存放spec文件的地方,用于索引到代码的位置。

 

打个比方,索引库就好比指针,私有库就好比对象,指针中存放了对象的地址,通过地址可以找到对象!(可以管理任意个组件仓库)

创建

随意在自己的gitlab 或者github上创建一个空的仓库即可,如我在自己案例中仓库地址为:

 

https://gitlab.rokid-inc.com/kingbo/iOS.git

2. 添加`私有仓库索引库`到本地repo管理

1.cocoapods本地仓库路径

~/.cocoapods/repos

2.在本地添加一个自己的远程索引库 

//备注这里仓库名字和git上名字保持一致(不一致好像最后会找不到私库,如下:iOS 为仓库名字) pod repo add iOS https://gitlab.rokid-inc.com/kingbo/iOS.git

此时目录结构如下:

.└── repos    ├── master    └── iOS //这个就是我们自己的本地映射仓库了 

其实这里私有仓库已经和我们的gitlab建立了 关系,在后面添加组件时,会直接push到我们的git仓库

 

3. 创建自己的`组建库工程`

这里的组建可以是任意的库,以下为测试准备,所以我准备名字为:`RokidToolsKitTest`

3.1 gitlab 仓库名字构建

 

在gitlab 上面创建一个 `RokidToolsKitTest` 仓库,我这里的地址如下:

https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git

远程代码clone 到本地就不用说了

3.2 gitignore 文件创建

另外,我们需要注意的是,由于组件工程中不需要管理pod文件里面的东西,因此需要创建一个名为`.gitignore`的隐藏文件,在这个仓库的跟目录下面(隐藏文件)

3.3 CHANGELOG.md 文件创建 (可以忽略)

由于组件工程中也涉及到版本管理,所以这个文件是对每个组件进行迭代改动的功能记录 

3.4 pod 命令本地创建pod工程

pod lib create  RokidToolsKitTest

执行上面命令行,然后根据具体情况选择对话框,最后会给我们创建一个组件工程(包括`podspec`文件里面有很多配置,这里就不一一写了)

3.5 关联本地仓库和远程仓库的链接 

git remote add origin  https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git

 

(写完自己的代码,最后直接提交到gitlab 仓库好了,业务逻辑不一一写了)

 

 3.6 更改podspec文件信息

开发完成之后需要创建podspec 文件 ,格式如下:

Pod::Spec.new do |s|  s.name             = 'RokidToolsKitTest'  s.version          = '0.1.0'  s.summary          = 'RokidToolsKitTest'  s.swift_version    = '4.0' # 我这里是swift 验证的时候不写会提示错误  s.description      = <<-DESC   这里是描述信息,由我们自己去写具体的组建业务                       DESC  s.homepage         = 'https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest'  s.license          = { :type => 'MIT', :file => 'LICENSE' }  s.author           = { 'jinlingbo' => 'lingbo.jin@rokid.com' }  s.source           = { :git => 'https://gitlab.rokid-inc.com/lingbo.jin/RokidToolsKitTest.git', :tag => s.version.to_s }  s.ios.deployment_target = '8.0'  s.source_files = 'RokidToolsKitTest/Classes/**/*'end

 

4. 上传`组建库工程`到`私有仓库索引库`

开发完成之后需要为我们自己的lib 仓库进行发布,具体以下几个流程 

 4.1 验证spec文件

其实在我们制作完成自己库之后,需要验证自己的库是否编译通过,因此在提交之前需要验证下

# cd 到当前跟目录 和podspec 文件保持同一个目录 pod lib lint --private  //如果有多个文件源,比如自己的私有库地址时, 可以添加--source ,如下 pod lib lint --private --sources=https://github.com/CocoaPods/Specs.git,https://gitlab.rokid-inc.com/kingbo/iOS.git

4.2 给版本打一个分支

验证通过之后,需要给tag 打一个版本  

此处的0.1.0版本号要与spec文件的保持一致$ git tag 0.1.0$ git push  --tags

### 4.3 进行发布当前版本

//执行上传到私有仓库,在第2步中,我们已经关联了 `iOS` 这个仓库的地址,所以这里push之后会直接push到我们的git仓库之中pod repo push iOS RokidToolsKitTest.podspec

 

5、App工程调用`组建库工程`

如果一切顺利就可以直接调用 组建了,使用方法和其他库使用一样

 

source 'https://github.com/CocoaPods/Specs.git'source 'https://gitlab.rokid-inc.com/kingbo/iOS.git' #记得在工程中添加自己的私有仓库索引  target 'RokidToolsKitTest_Example' do    pod 'RokidToolsKitTest','0.1.0'    pod 'SVProgressHUD', '~> 2.2.5'   target 'RokidToolsKitTest_Tests' do    inherit! :search_paths  endend

 

 总结

到这里,大致的私有仓库流程就已经完成 , 接下来我们思考的是如何去解决,将私有库打包成framework 然后对外开放问题。。。。这个话题后续继续。

 [参考资料]

 

转载于:https://www.cnblogs.com/kingbo/p/11455043.html

你可能感兴趣的文章
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
JavaScript的学习要点
查看>>
Day13
查看>>
tensorflow saver简介+Demo with linear-model
查看>>