网上有很多组件化私有库的教程,看起来只能说是千篇一律,一堆命令行从头到尾输入一遍就可以了,但是很少有人说为什么要这么做。凑巧我算是个喜欢刨根问底的人,今天就简单说说这个事情。
首先做一个私有库要了解几个东西:什么是私有库,什么是索引库。他们到底是怎么用上的。
下面xx代表你的私有库的名字
一、什么是私有库:
私有库也可以理解就是个文件夹,,,这个文件夹里有一些特定的文件特定的目录,比如xx.podspec。那我们怎么知道具体是怎么个文件和目录呢。我们其实不用知道因为pod给我们提供了一套模版,我们可以通过模版创建,这样就不用自己麻烦了,使用模版创建的命令就是pod lib create xx。输入完这个会给你们一堆询问这个我就不说了,我只能想说这个东西怎么来的,我们为什么要这么做。ps:模版是可以自己制作的有兴趣的可以自己玩玩。
二、什么是索引库:
索引库可以理解成许多私有库的一个对外的统一接口(外观),它本质就是一个文件夹里面存放着它包含私有库的podspec文件。就像这样:
image.png
三、到底是怎么用上的
这就要先从我们使用pod说起了。正常我们使用cocoapod的时候默认是他自带的master索引库去查找的。这个使用在podfile文件中也算是一种隐式不需要我们再去声明。不过master本身是公开的所以一般公司内部的私有库都不会放在这里,而是自己创建一个索引库。然后在podfile的声明用到的索引库。比如文件最上面写上:
source 'https://gitlab.xiaoming.com/app/xiaoming.git'
这样在你执行pod install的时候就会在这个索引库里面找了。找的过程我也不确定具体是什么样的。不过想想要改就是名字匹配文件夹,然后固定版本号就用特定的版本号,没固定版本号就用最新的,反正最终的目的是拿到里面存放的podspec。
image.png
得到这个文件后,在通过文件内的git地址;文件路径;依赖关联等等配置。进行pod的安装和工程的配置就行了。
四、私有库和索引库关联
通过上面的使用方式我们就明白了,想用索引库进行pod安装我们需要把私有库的podspec弄到索引库里,具体怎么弄得pod提供了命令行:
pod repo push 索引库的git链接 xx.podspec --allow-warnings
记得到xx.podspec 所在的文件夹。 --allow-warnings是忽略警告。当然也可能会报错,报错就改吧,多多百度具体这里面的配置东西还是很多的。
五、野一点吧
你可以在看看网上教程里的一堆命令行,我好像就说了两个。其他的都哪里去了。
第一,创建私有库部分这个还是推荐用模版的方式创建的。其他的我直接在git网站上创建一个项目然后clone下来。之后把创建好的私有库拷贝到下面,push一下完事了。还可以直接用sourcetree哪里有那么麻烦。
第二,索引库同样的方式,网站创建clone下来。私有库的podspec校验一下正确性正确了直接按照目录形式创建文件夹文件拖里面,push一下又完事了。
第三,我为什么要通过索引库的方式集成呢,其实除了索引库pod还可以直接指定私有库对应的git地址。然后可以通过tag或者分支的方式去集成,我直接把索引库干掉了是不是很好。
所以很多时候我们要明白我们要做的事情到底是怎么回事,古话是知其然知其所以然。今话是要有专研精神。当你明白是怎么回事的时候就没了那么多条条框框了。
好了打完收工。
网友评论