美文网首页
Xcode11 iOS自增Build号

Xcode11 iOS自增Build号

作者: SPKane | 来源:发表于2020-05-11 18:49 被阅读0次

    Xcode11升级后以前自增Build号不好使了,修改了下自增脚本
    以前是这样获取的:
    BundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${InfoplistPath}")
    然鹅现在得到的是一个字符串 "${CURRENT_PROJECT_VERSION}"...
    所以修改了下脚本直接通过${CURRENT_PROJECT_VERSION}获取这个参数值.
    但是有2个问题...

    1. 获取到后写入的是本地Info.plist文件,下次又拿不到.
    2. 直接在工程Gerneral-Identity里填写版本号又会让Info.plist文件被重置成字符串.

    所以直接通过获取Info.plist的版本号和${CURRENT_PROJECT_VERSION}的值作对比用高的那个就解决了.

    PS:

    在外部shell中可以这样获取:
    获取版本号

    BundleShortVersion=`xcodebuild -showBuildSettings | grep MARKETING_VERSION | tr -d 'MARKETING_VERSION ='`
    

    获取build号

    BundleVersion=`xcodebuild -showBuildSettings | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION ='
    

    直接上代码:

    echo "AddBuildNumber  Action$ACTION"
    #install才增加
    
    if [ "$ACTION" == "install"]; 
    then
    echo "AddBuildNumber begin"
    #按需修改地址
    plist=${PROJECT_DIR}/info.plist
    
    #获取plist的版本号
    InfoBuild=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
    
    #判断是否是字符串
    if echo $InfoBuild | grep -q '[^0-9]'
    then
          InfoBuild=0
    fi
    
    echo "AddBuildNumber  InfoBuild...$InfoBuild"
    #工程的版本号
    ProjectVersion=${CURRENT_PROJECT_VERSION}
    echo "AddBuildNumber  ProjectVersion...$ProjectVersion"
    #取最大的一个
    if [ $InfoBuild -ge $ProjectVersion ] ;then
    resultNum=$InfoBuild
    else
    resultNum=$ProjectVersion
    fi
    echo "AddBuildNumber  resultNum...$resultNum"
    #版本加1
    resultNum=$(expr $resultNum + 1)
    #写入plist
    /usr/libexec/Plistbuddy -c "Set CFBundleVersion $resultNum" "${plist}"
    echo "AddBuildNumber  number to$resultNum"
    fi
    

    相关文章

      网友评论

          本文标题:Xcode11 iOS自增Build号

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