Si tienes diferentes versiones de tu app basadas en diferentes variantes de compilación, crea reglas de conservación personalizadas para cada variante. Por ejemplo, si tienes un nivel gratuito y un nivel pagado de tu app con diferentes funciones y dependencias, cada nivel debe tener sus propias reglas de conservación.
Cómo crear reglas de conservación
Para AGP 9.3 y versiones posteriores:
Para mantener reglas de conservación específicas para diferentes variantes de tu app, coloca las reglas de conservación de cada variante en el conjunto de fuentes de reglas de conservación correspondiente . Por ejemplo, para flavor1, escribe reglas de conservación en app/src/flavor1/keepRules/flavor1-rules.keep.
AGP 9.3 y versiones posteriores (Kotlin)
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
flavorDimensions.add("version")
productFlavors {
create("flavor1") {
...
// Place your keep rules in app/src/flavor1/keepRules/ with the file suffix .keep
}
create("flavor2") {
...
// Place your keep rules in app/src/flavor2/keepRules/ with the file suffix .keep
}
}
}
AGP 9.3 y versiones posteriores (Groovy)
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
flavorDimensions "version"
productFlavors {
flavor1 {
...
}
flavor2 {
...
// Place your keep rules in app/src/flavor2/keepRules/ with the file suffix .keep
}
}
}
Para versiones del AGP anteriores a la 9.3:
Para crear reglas de conservación específicas de una variante de compilación, agrega la propiedad proguardFiles en el bloque flavor correspondiente en productFlavors.
Considera la siguiente secuencia de comandos de compilación que agrega el archivo de reglas flavor2‑rules.pro a la variante de producto flavor2:
DSL heredado (Kotlin)
android {
...
buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
flavorDimensions.add("version")
productFlavors {
create("flavor1") {
...
}
create("flavor2") {
proguardFile("flavor2-rules.pro")
}
}
}
DSL heredada (Groovy)
android {
...
buildTypes {
release {
minifyEnabled = true
shrinkResources = true
proguardFiles(
getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
)
}
}
flavorDimensions "version"
productFlavors {
flavor1 {
...
}
flavor2 {
proguardFile 'flavor2-rules.pro'
}
}
}
Recursos adicionales
- Cómo personalizar los recursos que se conservarán: Obtén información para agregar reglas de conservación de recursos.