Segmentar uma variante de build

Se você tiver versões diferentes do app com base em variantes de build diferentes, crie regras de manutenção personalizadas para cada variante. Por exemplo, se você tiver um nível sem custo financeiro e um pago do app com recursos e dependências diferentes, cada nível precisará ter as próprias regras de manutenção.

Criar regras de manutenção

Para o AGP 9.3 e versões mais recentes :

Para manter regras de manutenção específicas para diferentes variações do app, coloque as regras de manutenção de cada variação no conjunto de origem de regras de manutenção relevante . Por exemplo, para flavor1, escreva regras de manutenção em app/src/flavor1/keepRules/flavor1-rules.keep.

AGP 9.3 e versões mais recentes (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 e versões mais recentes (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 versões do AGP anteriores à 9.3 :

Para criar regras de manutenção específicas para uma variante de build, adicione a propriedade proguardFiles no bloco flavor correspondente em productFlavors.

Considere o script de build a seguir, que adiciona o arquivo de regras flavor2‑rules.pro à variação de produto flavor2:

DSL legada (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 legada (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'
        }
    }
}

Outros recursos