استهداف نوع تصميم

إذا كانت لديك إصدارات مختلفة من تطبيقك استنادًا إلى خيارات إنشاء مختلفة، يمكنك إنشاء قواعد مخصّصة للاحتفاظ بالبيانات لكل خيار من خيارات الإنشاء. على سبيل المثال، إذا كان لديك مستوى مجاني ومستوى مدفوع من تطبيقك يتضمّنان ميزات وتبعيات مختلفة، يجب أن يكون لكل مستوى قواعد احتفاظ بالبيانات خاصة به.

إنشاء قواعد الاحتفاظ بالبيانات

بالنسبة إلى الإصدار 9.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" والإصدارات الأحدث:

للاحتفاظ بقواعد الاحتفاظ بالبيانات محدّدة لصيغ مختلفة من تطبيقك، ضَع قواعد الاحتفاظ بالبيانات لكل صيغة في مجموعة رموز المصدر ذات الصلة بقواعد الاحتفاظ بالبيانات . على سبيل المثال، بالنسبة إلى flavor1، يمكنك كتابة قواعد الاحتفاظ بالبيانات في app/src/flavor1/keepRules/flavor1-rules.keep.

الإصدار 9.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" والإصدارات الأحدث (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
            }
        }
}

الإصدار 9.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" والإصدارات الأحدث (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
        }
    }
}

بالنسبة إلى إصدارات "المكوّن الإضافي لنظام Gradle المتوافق مع Android" الأقدم من 9.3:

لإنشاء قواعد احتفاظ بالبيانات خاصة بتنويعة التصميم، يمكنك إضافة السمة proguardFiles في كتلة الصيغة المقابلة ضمن 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'
        }
    }
}

مراجع إضافية