美文网首页
创建私有组件库

创建私有组件库

作者: 娜娜的世界123 | 来源:发表于2022-05-11 21:03 被阅读0次

    一、准备工作

    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就好了;

    相关文章

      网友评论

          本文标题:创建私有组件库

          本文链接:https://www.haomeiwen.com/subject/lkjjurtx.html