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 ?
Assuming you use Android Studio, by default the system creates a basic
debug flavor. So if you add a
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
Just make two flavors in build.gradle. Then two directories, again as given in the link (developer.android.com/tools/building/configuring-gradle.html ).
Since you need only strings to be altered, just copy your strings.xml files into the new directories (i.e. dev and production)
Delete your original strings.xml
And thats it. 🙂
No need to move your java files or other layout files.
In short, leave everything in your ‘main’ directory that should be consistent across all build flavors.
Override the values dependent upon build flavor into their respective directory.