使用 Azure Devops 在 iOS 应用程序中自动增加版本号
Auto Increment version number in iOS application using Azure Devops
我在 iOS 应用程序的构建过程中使用 Azure Devops yaml 管道。在运行时,我想在 info.plist 文件中每次构建后自动增加 CFBundle 版本号。
例如:版本从 0.0.1 -> 0.0.99 -> 0.1.0 -> 0.1.99 -> 0.2.0 ->................-> 0.99 .99 -> 1.0.0
关于如何在不使用任何第三方扩展的情况下实现此目的的任何建议?
谢谢!
您可以通过在构建应用程序之前实施 script
步骤来实现这一点。
此脚本将使用 PlistBuddy
工具读取和递增版本号(假设您在 Azure DevOps 上使用 macos 机器)。
我还假设您正在使用语义版本控制系统 major.minor.patch
,如 here.
所述
该脚本应该按照您的描述增加版本号,然后将其写入应用程序的 Info.plist
文件。如果您的项目中有不同的路径,请注意更改该文件的路径
- script: |
buildPlist="$(Build.SourcesDirectory)/Info.plist" # Enter the path to your plist file here
maxSubversionNumber=99 # Set what will be the maximum number to increment each sub version to
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$buildPlist")
majorVersion=`echo $versionNumber | awk -F "." '{print ( == "" ? 0 : )}'`
minorVersion=`echo $versionNumber | awk -F "." '{print ( == "" ? 0 : )}'`
patchVersion=`echo $versionNumber | awk -F "." '{print ( == "" ? 0 : )}'`
if [[ $patchVersion -ge $maxSubversionNumber ]]
then
patchVersion=0
if [[ $minorVersion -ge $maxSubversionNumber ]]
then
minorVersion=0
majorVersion=$(($majorVersion + 1))
else
minorVersion=$(($minorVersion + 1))
fi
else
patchVersion=$(($patchVersion + 1))
fi
newVersionNumber=`echo $versionNumber | awk -F "." '{print '$majorVersion' "." '$minorVersion' ".'$patchVersion'" }'`
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $newVersionNumber" "$buildPlist"
如果你想保留$(MARKETING_VERSION)
在 Info.plist 中用于 CFBundleShortVersionString 但
想要在成功存档或构建后增加版本
然后使用以下脚本
以下脚本将增加 1.0 到 2.0
但当然可以使用@Jobert 的解决方案等修改逻辑
我在 iOS 应用程序的构建过程中使用 Azure Devops yaml 管道。在运行时,我想在 info.plist 文件中每次构建后自动增加 CFBundle 版本号。
例如:版本从 0.0.1 -> 0.0.99 -> 0.1.0 -> 0.1.99 -> 0.2.0 ->................-> 0.99 .99 -> 1.0.0
关于如何在不使用任何第三方扩展的情况下实现此目的的任何建议? 谢谢!
您可以通过在构建应用程序之前实施 script
步骤来实现这一点。
此脚本将使用 PlistBuddy
工具读取和递增版本号(假设您在 Azure DevOps 上使用 macos 机器)。
我还假设您正在使用语义版本控制系统 major.minor.patch
,如 here.
所述
该脚本应该按照您的描述增加版本号,然后将其写入应用程序的 Info.plist
文件。如果您的项目中有不同的路径,请注意更改该文件的路径
- script: |
buildPlist="$(Build.SourcesDirectory)/Info.plist" # Enter the path to your plist file here
maxSubversionNumber=99 # Set what will be the maximum number to increment each sub version to
versionNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$buildPlist")
majorVersion=`echo $versionNumber | awk -F "." '{print ( == "" ? 0 : )}'`
minorVersion=`echo $versionNumber | awk -F "." '{print ( == "" ? 0 : )}'`
patchVersion=`echo $versionNumber | awk -F "." '{print ( == "" ? 0 : )}'`
if [[ $patchVersion -ge $maxSubversionNumber ]]
then
patchVersion=0
if [[ $minorVersion -ge $maxSubversionNumber ]]
then
minorVersion=0
majorVersion=$(($majorVersion + 1))
else
minorVersion=$(($minorVersion + 1))
fi
else
patchVersion=$(($patchVersion + 1))
fi
newVersionNumber=`echo $versionNumber | awk -F "." '{print '$majorVersion' "." '$minorVersion' ".'$patchVersion'" }'`
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $newVersionNumber" "$buildPlist"
如果你想保留$(MARKETING_VERSION) 在 Info.plist 中用于 CFBundleShortVersionString 但 想要在成功存档或构建后增加版本 然后使用以下脚本 以下脚本将增加 1.0 到 2.0 但当然可以使用@Jobert 的解决方案等修改逻辑