私有库可以说是现在iOS开发必备的一个技能了,接下来我会用CocoaPods
来完成私有库相关操作的整个流程。
了解私有库整个流程之前,先来了解一些前导知识。
一些概念
Repo
repository
的缩写,翻译为资料库
,也叫它资源库
。通过命令pod repo list
可以查看本地的资源库
。如下:
当我们使用pod search [PODNAME]
时,就会在本地的资料库进行库的搜索。有一点需要注意的就是,如果你本地的库的版本较老,这个时候,你搜索到的版本也会比较老,可以使用pod repo update [NAME]
更新下资料库或者更新下需要的库,再来进行pod install
操作
Podspec
spec
文件,为固定格式的索引文件,规范描述了Pod
库的版本。 它包括了应从何处获取源,使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)的详细信息。
工作原理图
这里先不考虑pod
命令到底做了什么事,从宏观上来说:当我们在项目中使用 pod install
时,pod
工具会遍历本地的资源库,找到podfile
文件中用的库,根据spec
文件中的描述信息来拉取远程仓库代码。
步骤
1. 配置索引库
创建自己的私有索引库。码云、github、gitlab都可,这里以码云为例:
添加私有资源库,并关联到自己的私有库。检查安装是否成功,是否准备就绪
出现All the specs passed validation
表示成功。
2. 配置自己的私有库
这里使用pod
官方的API
来创建,其他方式不再赘述。可以参考github
上优秀三方库,down
下来看看目录结构就明白了。
在终端输入pod lib create [NAME]
,根据提示填写相关配置信息
这里根据提示在终端输入就可以,建议包含demo application
,方便调试。这里执行完毕后,会使用Xcode
打开项目。我们来看项目目录
我们修改私有库里面的代码。这里把MJ
老师的框架MJRefresh
拉进去,修改下spec
文件,保存,执行pod install
,完美运行。因为MJRefresh
内部有资源文件,所以这里要在spec
文件中加入 s.resource = 'HDUIKit/MJRefresh.bundle'
,如图:
接下来,在码云中创建一个空的仓库,和本地的私有库关联。提交代码。这里不在赘述了,基本操作。
3. 处理spec
文件,打tag
私有库代码处理完以后,开始修改spec
文件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DnWbfKWt-1616051457532)(https://upload-images.jianshu.io/upload_images/25331915-4958a57b21dbe8bb.image?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
这个文件的配置除了参考官方文档以外,还可以参考第三方的一些spec文件。
修改完spec
后,提交代码,然后打tag
,提交完tag
以后,进入含有spec
文件的文件夹,使用pod spec lint
检查配置成功与否。
好了,剩下最重要的一步,把私有库的索引文件spec
推送到远程私有索引库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nl5B8oCl-1616051457534)(https://upload-images.jianshu.io/upload_images/25331915-803253b51eda12cb.image?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
到这里整个私有库的构造就结束了。
测试、使用
在终端里可以通过命令搜索我们的库
pod search HDUIKit --simple
新建一个项目,在podfile
文件中指定source,就可以使用我们的私有库了 !