Wenn Sie verschiedene Versionen Ihrer App basierend auf unterschiedlichen Build-Varianten haben, erstellen Sie für jede Variante benutzerdefinierte Keep-Regeln. Wenn Sie beispielsweise eine kostenlose und eine kostenpflichtige Stufe Ihrer App mit unterschiedlichen Funktionen und Abhängigkeiten haben, sollte jede Stufe eigene Keep-Regeln haben.
Aufbewahrungsregeln erstellen
Für AGP 9.3 und höher:
Wenn Sie bestimmte Keep-Regeln für verschiedene Flavors Ihrer App beibehalten möchten, platzieren Sie die Keep-Regeln für jede Flavor im entsprechenden Keep-Regeln-Source-Set . Schreiben Sie beispielsweise für flavor1 „Beibehalten-Regeln in app/src/flavor1/keepRules/flavor1-rules.keep“.
AGP 9.3 oder höher (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+ (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
}
}
}
Für AGP-Versionen vor 9.3:
Wenn Sie Keep-Regeln erstellen möchten, die für eine bestimmte Build-Variante gelten, fügen Sie die proguardFiles-Eigenschaft im entsprechenden Flavor-Block unter productFlavors hinzu.
Sehen Sie sich das folgende Build-Script an, das die Regelfile flavor2‑rules.pro dem Produkt-Flavor flavor2 hinzufügt:
Alte DSL (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")
}
}
}
Alte DSL (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'
}
}
}
Zusätzliche Ressourcen
- Anpassen, welche Ressourcen beibehalten werden sollen: Hier erfahren Sie, wie Sie Beibehaltungsregeln für Ressourcen hinzufügen.