Если у вас есть разные версии приложения, основанные на разных вариантах сборки, создайте пользовательские правила сохранения для каждого варианта. Например, если у вас есть бесплатный и платный уровни приложения с разными функциями и зависимостями, для каждого уровня должны быть свои собственные правила сохранения.
Создать правила сохранения
Для AGP 9.3+:
Чтобы поддерживать определенные правила сохранения для разных версий вашего приложения, разместите правила сохранения для каждой версии в соответствующем наборе исходных файлов правил сохранения. Например, для flavor1 напишите правила сохранения в app/src/flavor1/keepRules/flavor1-rules.keep .
AGP 9.3+ (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
}
}
}
Для версий AGP младше 9.3:
Чтобы создать правила сохранения, специфичные для варианта сборки, добавьте свойство proguardFiles в соответствующий блок flavor в разделе productFlavors .
Рассмотрим следующий скрипт сборки, который добавляет файл правил flavor2‑rules.pro в набор вариантов продукта flavor2 :
Устаревший 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")
}
}
}
Устаревший 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'
}
}
}
Дополнительные ресурсы
- Настройте, какие ресурсы следует сохранять — Узнайте, как добавить правила сохранения для ресурсов.