Как я могу использовать разные файлы proguard в разных вариантах или для разных типов сборки?

Мне нужно сделать разные вкусы для тестовых библиотек. Почему? Ну, я хочу, чтобы проект был полностью защищен, поэтому я хочу, чтобы минимизация была включена все время (даже для типа сборки отладки).

При выполнении тестов я использую разные классы из проекта, поэтому я решил изменить файлы proguard, используя флейвор. Это выглядит как-то так:

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            testProguardFile 'test-proguard-rules.pro'
        }
        debug {
            minifyEnabled true
            testProguardFile 'test-proguard-rules.pro'
        }
    }
    ...
    productFlavors{
        forTest{
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules1.pro', 'debug-rules.pro'
        }
        forRelease{
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'debug-rules.pro'
        }
   }
}

И файлы proguard-rules*

proguard-правила:

-dontwarn blablabla.**
-dontwarn blabla.**
-keep class bla.** { *; }

proguard-правила1:

-dontshrink
-dontobfuscate
-dontwarn

Но мне это не помогло. Я хочу запускать тесты без обфускации. У Flavors нет такого параметра, как minifyEnabled, поэтому я пытаюсь найти какое-либо решение. Итак, есть предложения по решению проблемы? Может быть у кого-то была такая же проблема и найти другое решение (без использования ароматизаторов)?


person Mody    schedule 26.02.2016    source источник


Ответы (1)


После целого дня возни с этим я нашел следующие работы:

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

productFlavors {
    flavorA {
        applicationIdSuffix ".a"
        proguardFile 'flavorA_rules.pro'
    }
    flavorB {
        applicationIdSuffix ".b"
    }

}
person Mark    schedule 01.07.2016
comment
Итак, flavorA_rules.pro заменить proguard-rules.pro на flavorA ? - person Cool; 30.09.2020