Jika Anda memiliki versi aplikasi yang berbeda berdasarkan varian build yang berbeda, buat aturan keep kustom untuk setiap varian. Misalnya, jika Anda memiliki aplikasi tingkat gratis dan tingkat berbayar dengan fitur dan dependensi yang berbeda, setiap tingkat harus memiliki aturan keep-nya sendiri.
Membuat aturan keep
Untuk AGP 9.3 ke atas:
Untuk mempertahankan aturan keep tertentu untuk ragam aplikasi yang berbeda, tempatkan aturan keep untuk setiap ragam di set sumber aturan keep yang relevan . Misalnya,
untuk flavor1, tulis aturan keep di
app/src/flavor1/keepRules/flavor1-rules.keep.
AGP 9.3 ke atas (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 ke atas (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
}
}
}
Untuk versi AGP sebelum 9.3:
Untuk membuat aturan keep yang khusus untuk varian build, tambahkan properti proguardFiles di blok ragam yang sesuai di bagian productFlavors.
Pertimbangkan skrip build berikut yang menambahkan file aturan
flavor2‑rules.pro ke ragam produk flavor2:
DSL Lama (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 Lama (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'
}
}
}
Referensi lainnya
- Menyesuaikan resource yang perlu dipertahankan — Pelajari cara menambahkan aturan keep untuk resource.