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
- Personalizar quais recursos manter: aprenda a adicionar regras de manutenção para recursos.