美文网首页
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