Cómo orientar a una variante de compilación

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