• cocopods上传自动化


    事先声明:本文章的自动化上传仅限于本地配置都已完成,包括:github地址以及分支正确(用于打tag)、cocopods库配置完成、podspec文件配置完成,后续仅需要配置版本号。上文中实现打包自动化,结合cocopods自动化,可实现完整的发版自动化

    代码先上,解释在后面

    1. #!/bin/sh
    2. version="\"1.0.2\""
    3. git tag ${version}
    4. git push --tags
    5. sed -i "" "s#^ spec.version = .*# spec.version = ${version}#g" 文件名.podspec
    6. pod lib lint 文件名.podspec --allow-warnings
    7. if [ $? -eq 0 ]; then
    8. pod spec lint 文件名.podspec --allow-warnings
    9. if [ $? -eq 0 ]; then
    10. pod trunk push 文件名.podspec --allow-warnings
    11. else
    12. echo "spec failed"
    13. fi
    14. else
    15. echo "lib failed"
    16. fi

    步骤:

    1.新建一个空白文件,修改后缀名为.sh

    2.写入上文代码

    3.在终端进入.sh脚本文件所在目录。

    4.执行如下命令:

            sh 脚本文件名.sh

    详细解释下代码:

    version="\"1.0.2\""

    顾名思义,给version一个值,为"1.0.2",注意,\" 的意思是将 " 当做普通字符看,而不是关键字。\其实就是转义字符

    git tag ${version}

    git push --tags

    给github仓库打tag,tag为version的值。要求github仓库地址已经配置

    sed -i "" "s#^  spec.version      = .*#  spec.version      = ${version}#g"  文件名.podspec

    这里是修改文件的值,-i 是不复制文件,直接修改源文件。 "" 这个空字符串一定要有,不然报错,报错信息如下 extra characters at the end of q command

    #^  spec.version      = .* 这个意思是在文件中匹配字符串“  spec.version      =” 注意,空格也要完全一致才能匹配成功。 .* 的意思是匹配成功的后面的所有内容都将被替换,还需要注意的是,匹配成功的  spec.version      = 也会被替换掉

    #  spec.version      = ${version} 这个意思是讲前面的字符串替换成该字符串。包括空格数。

    文件名.podspec 被修改的文件,如果.sh脚本文件和podspec文件在同一级目录,可以直接写文件名,如果不是同一级目录,需要写路径。比如podspec在.sh的上一级,这里就是../文件名.podspec

    pod lib lint qplayer2-core.podspec --allow-warnings

    if [ $? -eq 0 ]; then

        pod spec lint qplayer2-core.podspec --allow-warnings

        if [ $? -eq 0 ]; then

            pod trunk push qplayer2-core.podspec --allow-warnings

        else

            echo "spec failed"

        fi

    else

      echo "lib failed"

    fi

    这里就很简单了,如果pod lib 成功了,就执行 pod spec命令,否则就打印 lib 失败。如果lib spec 都成功了,就运行push。

    额外需要解释的是:$? 是上一个命令的返回值,-eq 是等于的意思  0代表执行成功,1代表执行失败

  • 相关阅读:
    化妆品行业的数字进化论:S2B2B电商网站如何助力化妆品企业打造增长新动能
    精益制造、质量管控,盛虹&百世慧共同启动MOM(制造运营管理)
    Vhr项目技术学习知识点总结
    【Markdown】编辑器使用技巧大汇总4。集合运算符的表示($\in$ 等),箭头符号的表示($\uparrow$ 等),使用指定的字体,转义字符的输入
    GeoServer:Vector Tiles-矢量瓦片制作与加载
    SQL Server Basic Class
    基于PHP的纺织用品商城系统
    python threading和multiprocessing模块基本用法实例分析
    人工神经网络的拓扑结构,三层神经网络结构图
    QT信号槽实现分析
  • 原文地址:https://blog.csdn.net/qq_36924305/article/details/126894184