美文网首页程序员
Build版本号自增

Build版本号自增

作者: Small_Potato | 来源:发表于2020-11-27 11:24 被阅读0次

    背景

    在iOS项目打包时,有两个版本号,一个是Version,即显示在AppStore中的版本号,其key为CFBundleShortVersionString,另一个是Build,即编译版本号,其key为CFBundleVersion。

    目的

    CFBundleVersion 和 CFBundleShortVersionString 一一对应,这样可以通过CFBundleVersion 来确定 CFBundleShortVersionString

    添加脚本

    1.Xcode切换到 Build Phases 选项卡;
    2.点击左上角"+"号来增加一项"New Run Script Phase";
    3.添加如下脚本代码:

    #!/bin/sh
    # ******************************************************
    # Description   :  每次编译或打包后Build自动加1
    #                  注意: Build设置为整数时,该脚本才能
    #                  实现其功能,即Build自动加1
    # ******************************************************
    
    
    #
    # 每次编译后是否Build自动加1,
    # 可以修改该常量的值,以决定编译后还是打包后Build自动加1
    # #  0: 每次打包后Build自动加1  
    # #  1: 每次编译后Build自动加1  
    DEBUG_ENVIRONMENT_SYMBOL=0
    #
    #
    # 编译或打包环境的标志,默认为编译环境
    configuration_flag="Debug"
    
    
    if [ $DEBUG_ENVIRONMENT_SYMBOL -eq 0 ]; then
        configuration_flag="Release"
    fi
    
    # 打印当前Xcode的环境配置
    echo "The current environment configuration for Xcode is: $CONFIGURATION"
    
    if [ $configuration_flag == "${CONFIGURATION}" ]; then
        echo "The build version number needs to be increased."
        
        build_version=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "${INFOPLIST_FILE}")
        # 判断读取出来的build_version变量是否为 $(CURRENT_PROJECT_VERSION) :
        # 若是,则从 CURRENT_PROJECT_VERSION 读取Build版本号,然后+1;
        # 若不是,则读取出来的build_version变量即为Build版本号,直接+1;
        if [ $build_version == '$(CURRENT_PROJECT_VERSION)' ]; then
            build_version=${CURRENT_PROJECT_VERSION}
        fi
    
        build_version=$(($build_version + 1))
        /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $build_version" "${INFOPLIST_FILE}"
    else
        echo "The build version number does not need to be increased."
    fi
    

    相关文章

      网友评论

        本文标题:Build版本号自增

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