tspckr
tspckr

Reputation: 321

How configure a different buildType for a flavor with gradle

I have two different flavor's, RQT & PRD.
And for one of them, I want to disable proguard configuration (for RQT, disable proguard for both buildTypes).
Like add conditioning ? Is something like that is possible ?

android {
  ...
  flavorDimensions("server")
  productFlavors {
    rqt {
      dimension "server"
      applicationIdSuffix ".rqt"
    }
    prd {
      dimension "server"
      applicationIdSuffix ".prd"
    }
  }
  ...
  buildTypes {
    debug {
      (__if (flavor != RQT) then do proguard config...__)
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      proguardFile 'proguard-debug-project.txt'
    }
    release {
      (__if (flavor != RQT) then do proguard config...__)
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      proguardFile 'proguard-release-project.txt'
    }
  }
  ...
}

Upvotes: 0

Views: 717

Answers (1)

Cruceo
Cruceo

Reputation: 6834

You could create additional Build Types, e.g. debugNoProguard, releaseNoProguard, etc.

android {
  variantFilter { variant ->
    def needed = variant.name in [
      'rqtDebugNoProguard',
      'rqtReleaseNoProguard',       
      'prdDebug',       
      'prdRelease'
    ]

    variant.setIgnore(!needed)
  }

  buildTypes {
    debug {
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      proguardFile 'proguard-debug-project.txt'
    }

    debugNoProguard {
      debuggable true
      minifyEnabled false
      signingConfig signingConfigs.debug
    }
    ....
  }
}

Then instead of building rqtDebug you would build the variant rqtDebugNoProguard or prdDebugNoProguard when you wanted to run a debug build without ProGuard.

Upvotes: 2

Related Questions