- 前言
- 为什么要创建cocopods远程私有仓库,在团队开发过程中,我们会用到许多公用的组件,比如多个工程会同时引用一段代码。之前我们的解决方案是,打静态包,制作framework来满足我的需求,但是都太不方便了。把公用库交给cocoapods来管理,可以方便的解决这种弊端。伙伴们只要简单几句命令行就可以完成库的安装和更新,操作运用方便,乃团队协作利器。操作过程中如果遇到命令不明的情况,建议多去官网搜索,里面提供的内容都是最全最准的。Command-line Reference
- 一. 准备工作
- spec 是个索引库,对应存放源码的地址,可以分为本地的 spec,远程的的spec索引文件,cocopod通过来管理spec索引文件来down spec索引文件对应的源代码地址,然后通过pod install 达到项目的需求,今天主要是创建远程的spec索引文件:
1.首先我们要创建一个git远程仓库,来存放我们的spec索引文件文件,目前托管项目比较好的地址有:
- spec 是个索引库,对应存放源码的地址,可以分为本地的 spec,远程的的spec索引文件,cocopod通过来管理spec索引文件来down spec索引文件对应的源代码地址,然后通过pod install 达到项目的需求,今天主要是创建远程的spec索引文件:
https://github.com/(github建立私有的远程仓库需要6$/月)
https://coding.net
- 我这里在github创建了个远程仓库,来存放我们自己的spec索引文件,对应的地址为:https://github.com/defuliu/TestSpec20170718
- 这里需要注意有二点,这在后面都会使用到
- 我们的索引文件名为TestSpec20170718
- 索引文件对应的路径为:https://github.com/defuliu/TestSpec20170718
- 这里需要注意有二点,这在后面都会使用到
- 接下来创建对应的远程仓库的spec索引文件,命令如下
pod repo add TestSpec20170718 https://github.com/defuliu/TestSpec20170718(这里在打开终端的开始执行)
这里spec文件名,以及git仓库的地址一定要和你所建的要一致,要不pod lib lint校验通不过。这样我们本地spec索引文件就与远程仓库对应一致了。接下来我们可以通过二种方式来查看我们本地的spec文件
open ~/.cocoapods/repos/ZYSpecs(第一种)
前往/个人/用户/xxx/.cocoapods/repo(第二种通过路径查看)
- 二. 创建本地模版类,用于自身测试,检验.spec索引文件,
- 命令如下
pod lib create TestSoundBase2 (TestSoundBase2可以任意取,最好取有意义的名字),
- 来自天堂的风.png
-
我们进去查看可以看到TestBase.podspec这个文件,这是我们本地的索引文件,然后要在TestBase.podspec文件里面做些配置如验证
- 来自天堂的风.png
- 这里有几个点需要注意下:
s.name (项目的名称)
s.version = '0.3.5' (版本号,这里是打tag的必须要用的,而且要高于当前的版本)
s.summary = 'TZTestBase.'(项目概述)
s.description = 'TZTestBase.TZTestBase' (描述东西,这里切记 s.description一定要比 s.summary的字符串要长)
s.homepage (远程仓库网页地址)
s.source (远程仓库代码地址)
# 表示注释
/**/*' 表示匹配通用的东西,如.h .m等等
#s.source_files = 'TZTestBase/Classes/**/*' 因为我这里配置Classes文件夹下面的东西
如:
s.subspec 'Base' do |b|
b.source_files = 'TZTestBase/Classes/Base/**/*'
这里按照此格式依次配置就ok,因为我们的spec索引文件有对应字母
- 三. 提交代码
- 这里我们还需要在github建立一个存放代码的远程仓库TZTestBase(这是我创建的),目的就是需要把我们所采用模版类你创建公用类提交到远程仓库,我这里对应的远程仓库地址:
https://github.com/defuliu/TZTestBase
git 的一些基本用法:
cd /TZTestBase(cd 当前文件夹的路径)
git add .
添加到本地仓库
git commit --m ''
查看远程是否有分支
git remote
如果没有的话,链接到远程仓库
git remote add origin https://github.com/defuliu/TZTestBase.git(这是远程代码仓库地址,对,没毛病)
提交到远程仓库
git push origin master
打tag
git tag 查看当前tag我是0.3.5,切记这里的tag一定是和spec索引文件的tag是一样的,要不验证通不过
推送tag
git push --tag
-
提交成功后,可以去github上查看下,如下
来自天堂的风.png - 可以看到Base Category Tool 都已成功上传
- 校验spec 文件
- 其实到了这里,如何spec文件没错的,验证起来就很容易了,下面开始验证(cd到开始创建的模版类)
pod lib lint (也可以加 pod lib lint TZTestBase.podsepc,本地验证)
pod spec lint (远程spec验证)
验证通过如下:
来自天堂的风.png
,(pod spec lint)远程验证忽略了。。。
接下来把本地spec索引库链接到远程仓库,命令如下
pod repo push TestSpec20170718 TZTestBase.podspec
接下来就简单了,跟我们平时安装第三方框架的步骤一样,如下
来自天堂的风.png
这里需要注意两点:
source 'https://github.com/defuliu/TestSpec20170718.git'(自己的spec索引文件)
source 'https://github.com/CocoaPods/Specs.git'
- (一定要记得引用,要不会报错的)
-
最后,接下来看下我们的成果
来自天堂的风.png
写的不对的地方,请大神多多指点,我好斧正!!!!
网友评论