创建私有组件库

一、准备工作

1、gitlab内部建一个空的仓库,用于托管模块的代码;
2、通过执行命令pod lib create SCDataReporterLib创建pod仓库模版;

二、配置podspec文件

1、主页、git地址、版本、tag
2、其中source填写git地址,dependency配置依赖的一些三方库,按规范走的话version和tag保持一致,也便于后期维护;

三、 封版

代码提交 & 关联源

git init
git remote add origin xxx.git
git add .
git commit -m "init"
git push -u origin master 

打tag

git tag '0.10'
git push --tags

四、创建私有spec Repo

1、执行 pod repo add MNKitSpecs xxx索引库地址,此时会发现~/.cocoapods/repos目前下生成了MNKitSpecs的文件夹以及对应的版本


图片.png

2、验证spec
执行pod spec lint,若验证通过可以继续执行步骤3;
由于我封的库依赖了私有库SCBaseLib,验证不通过,会在问题汇总中详细描介绍;
3、推送spec
执行pod repo push mySpecs pod_test.podspec
推送成功了在远程仓库是可以看到的


图片.png

五、接入使用

1、配置source 'xxx.git';
2、pod 'XXXReporter', '0.2.7'
3、cd到podfile所在的目录下,执行pod update进行下载私有库XXXReporter;

六、问题汇总

问题一
验证spec报错


图片.png

原因:

默认情况cocoapods会去github的源查找,及https://github.com/CocoaPods/Specs.git,由于依赖的SCBaseLib是一个私有库,当然找不到了。

解决方式
通过指定源的方式去查找验证,执行pod spec lint --verbose --use-libraries --allow-warnings --sources='xxx.git, https://github.com/CocoaPods/Specs.git';其中参数--verbose是展示详细的信息,不需要的话可以去掉;这个参数--use-libraries很重要。

问题二
push spec失败
原因:

和上一个是同样的问题,push的时候也会自动进行验证spec
解决方式

方式1:通过指定源的方式去push,执行pod repo push SRMKitSpecs SCDataReporter.podspec --sources='xxx.git, https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries
方式2:关闭验证,毕竟已经验证过了,直接push就好了;

你可能感兴趣的:(创建私有组件库)