Se hai versioni diverse della tua app in base a varianti di build diverse, crea regole di conservazione personalizzate per ogni variante. Ad esempio, se hai un livello senza costi e un livello a pagamento della tua app con funzionalità e dipendenze diverse, ogni livello deve avere le proprie regole di conservazione.
Creare regole di conservazione
Per AGP 9.3 e versioni successive:
Per mantenere regole di conservazione specifiche per le diverse versioni della tua app, inserisci le regole di conservazione per ogni versione nel set di risorse delle regole di conservazione pertinente . Ad esempio,
per flavor1, scrivi le regole di conservazione in
app/src/flavor1/keepRules/flavor1-rules.keep.
AGP 9.3 e versioni successive (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 versioni successive (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
}
}
}
Per le versioni di AGP precedenti alla 9.3:
Per creare regole di conservazione specifiche per una variante di compilazione, aggiungi la proprietà proguardFiles nel blocco versione corrispondente in productFlavors.
Considera il seguente script di build che aggiunge il file di regole
flavor2‑rules.pro alla versione prodotto flavor2:
DSL legacy (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 legacy (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'
}
}
}
Risorse aggiuntive
- Personalizzare le risorse da conservare: scopri come aggiungere regole di conservazione per le risorse.