我正在帮助他们的VSTS构建的朋友,我们正在使用两个构建标识符
这是特定于Xamarin.iOS构建的,我们使用新的VSTS构建任务来更新Info.Plist。我们需要使用$(Build.BuildId)作为版本代码,这只是一个递增的数字。然后我们想要使用$(Build.BuildNumber)作为实际版本名称。如果要将其格式化为构建字符串,它将如下所示:
$(Build.BuildNumber)
= 1.0.0$(Build.BuildId)
= 148问题是我们已经将应用程序提交到应用程序商店,其中包含更大的构建ID,然后是我们当前构建的内容。我们希望手动更新BuildId,而不是运行构建X次以同步它,以便我们可以开始使用它来完成整个工作流程。
不,这是不可能的。
预定义变量Build.BuildId
值对于在VSTS帐户中记录回显构建是唯一的。
即使您可以通过logging命令更改值,但它只能用于当前构建,当您在构建下一个队列时,构建ID将继续增加而不会产生任何影响。
例如当前的Build.BuildId
是148,即使你在构建中使用Write-Host "##vso[task.setvariable variable=Build.BuildId]2148"
的值100,但是当另一个构建排队时,Build.BuildId
将是149。
解决方法是使用用户定义的变量而不是Build.BuildId
:
添加用户定义的变量,例如custom.BuildId
,并使用($(Build.BuildID)+GapNumber)
设置值。
例如,如果当前Build.BuildID
为148,而您在app store中提交的构建ID为2148,那么您可以使用值为custom.BuildId
的($(Build.BuildID)+2000)
。然后使用变量$(custom.BuildId)
和$(Build.BuildNumber)
为您的应用程序。
对于下一个构建。 custom.BuildId
值为1149。