将versionCode设置为当前日期

时间:2016-06-23 14:54:01

标签: android gradle

我有一些简单的Android应用程序供公司内部使用。我想创建一个简单的版本跟踪。 为了实现它,我在build.gradle文件中添加了一些代码:

apply plugin: 'com.android.application'
   buildscript {
      repositories {
         jcenter()
         maven {
           url "https://plugins.gradle.org/m2/"
         }
    }
    dependencies {
       classpath "com.github.ben-manes:gradle-versions-plugin:0.12.0"
       classpath 'org.moallemi.gradle.advanced-build-version:gradle-pugin:1.5.3'
   }
apply plugin: 'org.moallemi.advanced-build-version'
apply plugin: "com.github.ben-manes.versions"

advancedVersioning {
   outputOptions {
      renameOutput true
      nameFormat '${projectName}-${versionCode}'
   }
}

我想要做的就是将 versionCode 设置为当前日期(长)。 我该怎么做?这是一个正确的方向吗?

提前致谢!

3 个答案:

答案 0 :(得分:0)

如果你想设置versionCode,只需将它添加到build.gradle(Module:app)文件中:

defaultConfig {
  versionCode 1 //Set the number you want
}

答案 1 :(得分:0)

在github上有一个功能强大的gradle插件,名为gradle-advanced-build-version,它非常简单并且 将允许您根据当前日期时间自动生成版本代码

安装插件后,您可以使用以下代码自动将版本代码分配给当前日期:

    defaultConfig { 
      advancedVersioning {
            nameOptions {
                versionMajor 4
                versionMinor 5
                versionPatch 6
                versionBuild 7
            }
            codeOptions {
                versionCodeType VersionCodeType.DATE
            }
        }
        versionName advancedVersioning.versionName
        versionCode advancedVersioning.versionCode
    }

答案 2 :(得分:0)

我正在执行以下操作,以将当前日期设为Android APK中的versionCode。但是,这意味着您一天不能多次发布到Google Play,所以我建议使用"yyyyMMdd00"作为格式字符串,并临时增加00用于修补程序推送。

def versionCodeDate() {
    return new Date().format("yyyyMMdd").toInteger()
}

android {
    defaultConfig {
        versionCode versionCodeDate()
    }
}

这是受https://stackoverflow.com/a/30639651/539443

的启发