как добавить дату сборки в versionNameSuffix на gradle
Я использую Android Studio, и мне нужно добавить суффикс к versionNameSuffix на моей сборке Android.файл gradle. У меня есть три разных типа сборки, и мне нужно только добавить datetime в мой" бета " релиз, мой фактический файл:
defaultConfig {
versionCode 14
versionName "0.7.5"
minSdkVersion 9
targetSdkVersion 18
}
buildTypes {
beta {
packageNameSuffix ".beta"
versionNameSuffix "-beta"
signingConfig signingConfigs.debug
}
....
}
для тестирования и автоматического развертывания мне нужно получить окончательное имя версии, например:0.7.5-beta-build20131004,0.7.5-beta-build1380855996 или что-то подобное. Есть идеи?
6 ответов:
beta { packageNameSuffix ".beta" versionNameSuffix "-beta" + "-build" + getDate() signingConfig signingConfigs.debug } def getDate() { def date = new Date() def formattedDate = date.format('yyyyMMddHHmmss') return formattedDate }сгущенное:
def getDate() { return new Date().format('yyyyMMddHHmmss') }
вы можете определить в вашей сборки.gradle пользовательские функции и переменные.
def versionMajor = 3 def buildTime() { def df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'") // you can change it df.setTimeZone(TimeZone.getTimeZone("UTC")) return df.format(new Date()) }затем вы можете использовать:
android { defaultConfig { versionName "${versionMajor}-beta-build-${buildTime()}" } }или если вы хотите добавить его в вас versionNameSuffix
beta { versionNameSuffix "-beta-build-${buildTime()}" }
кроме того, не забудьте добавить импорт в качестве первой строки Gradle:
import java.text.SimpleDateFormat; ...
Я не знаком с Android Studio, но я предполагаю, что Gradle ведет себя так, как обычно. Добавление чего-то подобного в конфигурацию проекта сборки должно сделать трюк:
allProjects { gradle.taskGraph.whenReady { taskGraph -> versionNameSuffix += '-build' + // Java/Groovy code to produce the timestamp formatted the way you want } }
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") } }
Вы можете проверить
task timenow { println(new Date().getTime()) }Run 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 }
Comments