studio programacion herramientas fundamentos con avanzado aplicaciones android gradle

programacion - Android: cambiar el nombre de la versión basada en el tipo de compilación



manual de android en pdf (2)

Después de horas de búsqueda, he logrado eliminar todos los cambios realizados en el nombre de la versión de la versión de lanzamiento utilizando este código

applicationVariants.all { variant -> if (variant.buildType.name == ''release'') { variant.mergedFlavor.versionName = android.defaultConfig.versionName; } }

Quiero cambiar el nombre de la versión para los sabores de la aplicación, pero solo si es una compilación de depuración.

(Por ejemplo, las compilaciones de depuración tendrán versiones como 1.0.1 D (DEBUG) 555 o 1.0.1 P (DEBUG) 555, sin embargo, quiero que las compilaciones de lanzamiento solo tengan una versión como 1.0.1) ¿Cómo puedo lograr esto?

Básicamente tengo estos tipos de compilación:

buildTypes { debug { versionNameSuffix " (DEBUG) " + mBuild } release { runProguard true proguardFiles getDefaultProguardFile(''proguard-android-optimize.txt''), file(''proguard-project.txt'') signingConfig signingConfigs.release } }

y estos sabores (para diferentes ambientes api):

productFlavors { dev { versionName = android.defaultConfig.versionName + " D" } prod { versionName = android.defaultConfig.versionName + " P" } }

¿Hay alguna manera de hacer compilaciones de lanzamiento sin cambio de nombre de versión de versiones de producto?

He intentado establecer el nombre de la versión dinámicamente a través de

buildTypes.each { buildType -> if(buildType.name == ''debug'') { productFlavors.dev.versionName = android.defaultConfig.versionName + " D" } }

pero esto resulta en

No se pudo encontrar la propiedad ''dev'' en el contenedor GroupableProductFlavorDsl.


Build Type debe anular el Product Flavor . Probar el siguiente.

buildTypes { release { versionName = android.defaultConfig.versionName } }