אם יש לכם גרסאות שונות של האפליקציה שמבוססות על וריאנטים שונים של build, אתם צריכים ליצור כללי שמירה בהתאמה אישית לכל וריאנט. לדוגמה, אם יש לכם רמת חברות בחינם ורמת חברות בתשלום באפליקציה, עם תכונות ותלויות שונות, לכל רמה צריכים להיות כללי שמירה משלה.
יצירת כללי שמירה
ב-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:
כדי ליצור כללי שמירה שספציפיים לווריאנט build, מוסיפים את המאפיין 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'
}
}
}
מקורות מידע נוספים
- התאמה אישית של המשאבים שרוצים לשמור – איך מוסיפים כללי שמירה למשאבים