只混淆一种味道

Doo*_*ght 4 android proguard android-productflavors

我将如何只混淆一种味道。

不幸的是,风格 2 依赖于一个模块(jar),它使用了一些重复的类,由于它的设置方式,我无法混淆它。(第 3 方)所以希望跳过混淆味道。

我似乎无法在风味部分定义 minifyENabled false ,或将风味添加到构建部分。

请注意,实际上总共有 6 种口味。愿望是挑选应该混淆的口味

   buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    productFlavors {
        flavour1{
            applicationId "uk.co.company.flavour1"
        }
        flavour2{
            applicationId "uk.co.company.flavour2"
        }
   }
Run Code Online (Sandbox Code Playgroud)

azi*_*ian 5

只要有不存在minifyEnabledProductFlavorDSL的对象,那么你必须创建另一个buildType,如releaseMinified与标准一起release

buildTypes {
    release {
        minifyEnabled false
    }
    releaseMinified {
        minifyEnabled true
    }
}

productFlavors {
    minifiableFlavor{}
    nonMinifiableFlavor{}
}
Run Code Online (Sandbox Code Playgroud)

并仅为需要的风格启用此构建类型:

android.variantFilter { variant ->
    if (variant.buildType.name.equals('releaseMinified') && !variant.getFlavors().get(0).name.equals('nonMinifiableFlavor')) {
        variant.setIgnore(true);
    } else if (variant.buildType.name.equals('release') && variant.getFlavors().get(0).name.equals('nonMinifiableFlavor')){
        variant.setIgnore(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你会得到:

构建类型