Scegliere come target una variante di compilazione

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