我正在帮助一个 friend 进行 VSTS 构建,我们正在使用这两个构建标识符
这是特定于 Xamarin.iOS 构建的,我们使用新的 VSTS 构建任务来更新 Info.Plist。我们需要使用 $(Build.BuildId) 作为版本代码,它只是一个递增的数字。然后我们要使用 $(Build.BuildNumber) 作为实际的版本名称。如果要将其格式化为构建字符串,它将如下所示:
$(Build.BuildNumber)
= 1.0.0 $(Build.BuildId)
= 148 问题是我们已经将我们的应用程序提交到应用程序商店,其构建 ID 比我们当前的构建 ID 更大。我们希望手动更新 BuildId,而不是运行 X 次构建来同步它,这样我们就可以开始在我们的完整工作流程中使用它。
最佳答案
不,这是不可能的。
预定义变量 Build.BuildId
值是唯一用于记录 VSTS 帐户中的 echo build。
即使您可以通过 logging 命令更改该值,但它仅适用于当前构建,当您排队下一个构建时,构建 ID 将继续增加而没有任何影响。
比如当前的Build.BuildId
是148,即使你在一次build中通过Write-Host "##vso[task.setvariable variable=Build.BuildId]2148"
把这个值改成100,但是当另一个build排队的时候,Build.BuildId
就会是149。
解决方法是 使用用户定义的变量而不是 Build.BuildId
:
添加用户定义的变量,例如 custom.BuildId
并使用 ($(Build.BuildID)+GapNumber)
设置值。
比如当前的Build.BuildID
是148,而你在app store提交的build ID是2148,那么你可以使用custom.BuildId
值为($(Build.BuildID)+2000)
的$(custom.BuildId)
。然后为您的应用程序使用变量 $(Build.BuildNumber)
和 custom.BuildId
。
对于下一个构建。 ojit_code 值为 1149。
关于azure-devops - 是否可以手动更新构建变量 $(Build.BuildId),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47894722/