【发布时间】:2019-04-02 12:30:08
【问题描述】:
作为构建管道应用中心部署的一个步骤,我应该如何在 android 项目中增加我的版本号? Azure DevOps 是否有版本管理器插件,或者我应该创建一个version.properties 文件并编辑、提交、推送到当前分支?
构建管道:
【问题讨论】:
标签: android git azure-devops azure-pipelines
作为构建管道应用中心部署的一个步骤,我应该如何在 android 项目中增加我的版本号? Azure DevOps 是否有版本管理器插件,或者我应该创建一个version.properties 文件并编辑、提交、推送到当前分支?
构建管道:
【问题讨论】:
标签: android git azure-devops azure-pipelines
遗憾的是没有开箱即用的支持,但你可以找到here 一个很好的教程:
安装包含Version Assemblies 任务的Colin's ALM Corner Build & Release Tools。
在 Android 清单中,名称和代码应如下所示:
android:versionCode="1" android:versionName="1.0.0"
添加后,我们将更改名称。
首先插入以下内容(带有示例):
在高级下:
这会将版本名称更新为“常规”下的内部版本号格式,我的设置为 1.0.0$(rev:.r)
接下来是版本号:
在高级下:
就像这样,你很高兴。这只会用当前版本更新它:)
【讨论】:
有一个名为的现有任务
Mobile App Tasks for iOS and Android 在由 James Montemagno
您可以在github中找到分步说明
他开发此任务主要是为了解决 android/IOS 应用程序中的这种版本控制问题。
【讨论】:
对我来说最好的解决方案是创建一个 version.properties 文件来跟踪版本控制,然后在管道构建过程中修改它(shell 脚本)。其他的则不好,尤其是对于自定义版本控制。
【讨论】:
这可以在不使用属性文件然后使用 shell 脚本替换它的情况下更干净地完成。
在顶层 build.gradle 文件中,在构建脚本下:
buildscript {
def getVersionCode = { ->
def code = project.hasProperty('versionCode') ? versionCode.toInteger() : -1
println "VersionCode is set to $code"
return code
}
def getVersionName = { ->
def name = project.hasProperty('versionName') ? versionName : "1.0"
println "VersionName is set to $name"
return name
}
ext{
versionCode = getVersionCode()
versionName = getVersionName()
}
}
在您的模块特定的 gradle 文件中:
defaultConfig {
versionCode rootProject.ext.versionCode
versionName rootProject.ext.versionName
}
在用于 gradle 构建任务的 Devops 管道中,只需传递如下选项:
-PversionName=$(Build.BuildNumber) -PversionCode=$(Build.BuildId)
【讨论】: