Android separate string values for release and debug builds

android, android-build, android-build-flavors, gradle

Solution

Assuming you use Android Studio, by default the system creates a basic `release` and `debug` flavor. So if you add a `debug` and `release` folder in the `app/src` folder of your project you can declare separate values there.

So your structure should be like this:

project
  -app
    -src
      -debug
        -java
          ...
        -res
          -values
            -strings.xml
      -release
        -java
          ...
        -res
          -values
            -strings.xml
      -main
        -java
          ...
        -res
          -values
            -strings.xml

I should also add that if you have a string which isn't defined in either of the `debug` or the `release` folder that it will fallback to your `main` folder.

Problem

Every time i release my app i change all my url strings and some keys from testing to production. The way I do it is just comment out the testing strings before i release. Is there a better way to handle strings based on the build type ?

Original source

Related problems