Menargetkan varian build

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