หากคุณมีแอปเวอร์ชันต่างๆ ตามตัวแปรบิลด์ที่แตกต่างกัน ให้สร้างกฎการเก็บที่กำหนดเองสำหรับตัวแปรแต่ละรายการ เช่น หากคุณมีแอปเวอร์ชันฟรีและเวอร์ชันที่ต้องซื้อซึ่งมีฟีเจอร์และการอ้างอิงที่แตกต่างกัน แต่ละเวอร์ชันควรมีกฎการเก็บรักษาของตัวเอง
สร้างกฎการเก็บ
สำหรับ 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:
หากต้องการสร้างกฎการเก็บที่เฉพาะเจาะจงสำหรับตัวแปรบิลด์ ให้เพิ่มพร็อพเพอร์ตี้
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'
}
}
}
แหล่งข้อมูลเพิ่มเติม
- ปรับแต่งทรัพยากรที่จะเก็บไว้ - ดูวิธีเพิ่มกฎการเก็บรักษา สำหรับทรัพยากร