Android Studio: Cambiar una URL dependiendo de buildtype? (Utilizado para probar en depuración / liberación)

He estado leyendo algo sobre variantes y buildtypes y no sé si lo entiendo bien, pero me gustaría almacenar una URL para locahost (testing) y otra para producción (sitio en vivo en Internet).

Y necesito cambiarlos dependiendo de qué buildtype. ¿Es esta la forma correcta de hacer esto? O hay otra alternativa?

¿Alguien tiene un pequeño ejemplo?

¿Hay una manera de almacenar esta información en un archivo que no necesito confiar al control de fuente? Estoy utilizando el archivo gradle.properties para almacenar algunas contraseñas que utiliza gradle para las firmas .. Esto funciona muy bien como este archivo no comparto en el control de versiones.

Estoy un poco confundido del método correcto de usar y cómo implementarlo.

¿Algunas ideas?

Puede utilizar el BuildConfig para suministrar diferentes URL para cada BuildType

buildTypes { debug { buildConfigField "String", "SERVER_URL", '"http://someurl/"' } release{ buildConfigField "String", "SERVER_URL", '"http://someotherurl/"' } } 

El BuildConfig se generará automáticamente cada vez que sincronice su proyecto con el archivo gradle. En su código, puede acceder a la URL de esta manera:

 BuildConfig.SERVER_URL 

Si no desea confirmar estas URL, puede almacenarlas en su gradle.properties igual que su contraseña y tal y hacer referencia a ellas en el build.gradle.

 buildConfigField "String", "SERVER_URL", serverurl.debug 
  buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "String", "BASE_URL", '"url1"' debuggable false } debug { runProguard false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' buildConfigField "String", "BASE_URL", '"url2"' debuggable true } 

Esto lo que necesita hacer en el gradle y hacer ejecutar dos aplicaciones (liberación y depuración) en un mismo teléfono sólo tiene que agregar

ApplicationIdSuffix ".debug"

En la porción de depuración. Como el nombre del paquete será diferente. Esto funcionó para mí.

  • Error: Error de ejecución para la tarea ': app: transformJackWithJackForDebug'
  • No se encontró ningún identificador de recurso para el atributo '' in package 'com.app ...'
  • Galaxy Tab 4 no reconocido en Android Studio
  • ¿Cómo se utiliza un OnClickListener en una vista de reciclador?
  • Android AsyncHttpClient, no se puede encontrar la clase de símbolo Header
  • Error: Error de ejecución para la tarea ': app: transformClassesAndResourcesWithProguardForArmRelease'
  • Cómo desactivar la actualización automática del nuevo código generado en Android Studio: "Esto se generó automáticamente para implementar la API de indexación de aplicaciones".
  • Vector Asset Studio está importando archivo .svg colorido en blanco y negro
  • Aclaración sobre Android "La elevación de atributo se utiliza sólo en el nivel API 21 y superior"
  • Android DataBinding y MVVM - Utilizar los mismos archivos de diseño para diferentes condiciones utilizando los mismos modelos de vista
  • Plugin de Android Studio y Bitbucket
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.