如何使用不同风格或不同构建类型的不同proguard文件?

时间:2016-02-26 17:19:37

标签: android gradle proguard obfuscation android-productflavors

我需要为测试库制作不同的口味。为什么?好吧,我希望项目完全安全,所以我想缩小一直启用(即使是调试版本类型)。

在进行测试时,我正在使用项目中的不同类, 所以我决定使用flavor改变proguard文件。它看起来像这样:

a:14:{s:3:"zip";s:5:"78229";s:3:"lon";d:-98.5746990000;s:6:"status";s:7:"success";s:5:"query";s:13:"72.***.***.**";s:3:"org";s:17:"Time Warner Cable";s:2:"as";s:38:"AS11427 Time Warner Cable Internet LLC";s:4:"city";s:11:"San Antonio";s:8:"timezone";s:15:"America/Chicago";s:7:"country";s:13:"United States";s:3:"isp";s:17:"Time Warner Cable";s:10:"regionName";s:5:"Texas";s:3:"lat";d:29.50700000;s:11:"countryCode";s:2:"US";s:6:"region";s:2:"TX";}

和proguard-rules *文件

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的-rules1:

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

但这对我没有帮助。我想在没有混淆的情况下运行测试。 Flavors没有minifyEnabled这样的参数,所以我试图找到任何解决方案。那么有关解决问题的任何建议吗?可能有人有同样的问题并找到另一种解决方案(不使用口味)?

1 个答案:

答案 0 :(得分:10)

经过一整天的捣乱,我找到了以下作品:

block in transaction'
from /Users/[FILTERED USERNAME]/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sequel-4.35.0/lib/sequel/database/connecting.rb:251:in