Uygulamanızın farklı derleme varyantlarına dayalı farklı sürümleri varsa her varyant için özel koruma kuralları oluşturun. Örneğin, uygulamanızın farklı özelliklere ve bağımlılıklara sahip ücretsiz ve ücretli katmanları varsa her katmanın kendi saklama kuralları olmalıdır.
Saklama kuralları oluşturma
AGP 9.3 ve sonraki sürümler için:
Uygulamanızın farklı sürümleri için belirli saklama kurallarını korumak istiyorsanız her sürümün saklama kurallarını ilgili saklama kuralları kaynak kümesine yerleştirin . Örneğin, flavor1 için saklama kurallarını app/src/flavor1/keepRules/flavor1-rules.keep bölümüne yazın.
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
}
}
}
9.3'ten önceki AGP sürümleri için:
Bir derleme çeşidine özel saklama kuralları oluşturmak için proguardFiles özelliğini productFlavors altındaki ilgili flavor bloğuna ekleyin.
flavor2‑rules.pro kurallar dosyasını flavor2 ürün türüne ekleyen aşağıdaki derleme komut dosyasını inceleyin:
Eski 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")
}
}
}
Eski 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'
}
}
}
Ek kaynaklar
- Hangi kaynakların saklanacağını özelleştirme: Kaynaklar için saklama kurallarını nasıl ekleyeceğinizi öğrenin.