Тестирование релизного приложения на андроиде с тестовым apk не "proguarded" - PullRequest
0 голосов
/ 18 ноября 2018

Я хочу проверить релиз apk в android, у которого включена proguard.Но я не хочу, чтобы на Android-тесте apk был включен proguard.

Есть ли способ отключить защиту на Android-тесте apk.

Я добавил это

defaultConfig { 
   ....
   testBuildType 'release'`
  }

и

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

            //proguard files for the android test apk
            testProguardFile('proguard-test-rules.pro')
        }
}

Ищите способ, который отключит proguard для теста Android.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

(вероятно) бесполезно отключать ProGuard ... лучше создать пакет debuggable:

staging {

    signingConfig signingConfigs.Release
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    testCoverageEnabled true
    minifyEnabled false
    zipAlignEnabled true
    shrinkResources true
    pseudoLocalesEnabled false
    renderscriptDebuggable true
    jniDebuggable true
    debuggable true
}

, хотя даже нет уверенности, что можно иметь тесты для сборок релиза (по замыслу).

0 голосов
/ 18 ноября 2018

Получил работу следующим образом.

android {

    defaultConfig {

        /**
         * switch to testBuildType release when the parameter has androidTestRelease
         * ./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease
         **/
        if (project.hasProperty('androidTestRelease')) {
            testBuildType 'release'
        } else {
            testBuildType 'debug'
        }
    }


    buildTypes {
        release {

            /***
             * Disable proguard when building the android test release apk
             * ./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease
             */
            if (project.hasProperty('androidTestRelease')) {
                minifyEnabled false
            } else {
                minifyEnabled true
            }

            signingConfig signingConfigs.Release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testCoverageEnabled = true
        }
    }

}

Вы можете собрать апк используя

./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease
...