Android 如何将日期构建附加到gradle上的versionNameSuffix

Android 如何将日期构建附加到gradle上的versionNameSuffix,android,android-studio,gradle,android-gradle-plugin,build.gradle,Android,Android Studio,Gradle,Android Gradle Plugin,Build.gradle,我正在使用Android Studio,需要在我的Android build.gradle文件的versionNameSuffix中添加后缀。我有三种不同的构建类型,我只需要将datetime附加到我的“beta”版本中,我的实际文件是: defaultConfig{ 版本代码14 版本名称“0.7.5” 明斯克版本9 targetSdkVersion 18 } 建筑类型{ 贝塔{ packageNameSuffix“.beta” 版本名称uffix“-beta” signingConfig s

我正在使用Android Studio,需要在我的Android build.gradle文件的versionNameSuffix中添加后缀。我有三种不同的构建类型,我只需要将datetime附加到我的“beta”版本中,我的实际文件是:

defaultConfig{
版本代码14
版本名称“0.7.5”
明斯克版本9
targetSdkVersion 18
}
建筑类型{
贝塔{
packageNameSuffix“.beta”
版本名称uffix“-beta”
signingConfig signingConfigs.debug
}
....
}

对于测试和自动部署,我需要得到一个最终版本名,比如:
0.7.5-beta-build20131004
0.7.5-beta-build1380855996
或者类似的东西。有什么想法吗?

我对Android Studio不太熟悉,但我认为Gradle的行为和平常一样。在构建项目配置中添加类似的内容应该可以做到:

所有项目{
gradle.taskGraph.whenReady{taskGraph->
versionNameSuffix++='-build'++//Java/Groovy代码,以生成按您希望的方式格式化的时间戳
}
}
测试版{
packageNameSuffix“.beta”
versionNameSuffix“-beta”+“-build”+getDate()
signingConfig signingConfigs.debug
}
def getDate(){
定义日期=新日期()
def formattedDate=date.format('yyyyMMddHHmmss')
返回格式化日期
}
浓缩:

def getDate() {
    return new Date().format('yyyyMMddHHmmss')
}

您可以在build.gradle中定义自定义函数和变量

def versionMajor=3
def buildTime(){
def df=new SimpleDateFormat(“yyyy-MM-dd'T'HH:MM'Z')//您可以更改它
df.setTimeZone(TimeZone.getTimeZone(“UTC”))
返回df.format(新日期())
}
然后您可以使用它:

android{
默认配置{
versionName“${versionMajor}-beta构建-${buildTime()}”
}
}
或者,如果要将其添加到versionNameSuffix中

beta{
versionNameSuffix“-beta版-${buildTime()}”
}

另外,不要忘记将导入添加为渐变第一行:

import java.text.SimpleDateFormat;
...
你可以测试

task timenow {
    println(new Date().getTime())
}
运行gradle:gradle timenow

见详情。将其放置在顶级构建中

ext {
    configuration = [
            appName          : "vBulletin",
            applicationId    : "com.vbulletin",
            minSdkVersion    : 14,
            targetSdkVersion : 19,
            compileSdkVersion: 19,
            versionCode      : 6,
            versionName      : "1.3.6",
            buildToolsVersion: "25.0.0",
    ]

}

task createBrand {
    appConfig.applicationId = appConfig.applicationId + ".${brand}"
    appConfig.versionCode = new Date().getTime()
    appConfig.versionName = version
}

如何在配置build.gradle?como generar el apk despues?versionNameSuffix已中断至少一年
buildTime
带下划线:不支持内部方法。如何导入日期()?或避免使用日期().format(“yyyyMMdd'T'hhmmsz”)
for simple one row solution define this property above android section 

final BUILD_DATE = new Date().format('yyyy_MM_dd_HHmm')

and then 

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId APPLICATION_ID
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.compileSdkVersion
        versionName GIT_TAG_NAME
        versionCode GIT_COMMIT_COUNT
        setProperty("archivesBaseName",`enter code here` "com-appname-$BUILD_DATE-$versionName")
    }
}