para - manual de programacion android pdf
Android Studio: ¿Cambiar una URL dependiendo del tipo de compilación?(usado para probar en debug/release) (2)
Puede usar BuildConfig para suministrar diferentes URL para cada BuildType
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", ''"http://someurl/"''
}
release{
buildConfigField "String", "SERVER_URL", ''"http://someotherurl/"''
}
}
BuildConfig se generará automáticamente cada vez que sincronice su proyecto con el archivo de 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 como su contraseña y demás, y hacer referencia a ellas en build.gradle.
buildConfigField "String", "SERVER_URL", serverurl.debug
He estado leyendo algo sobre variantes y tipos de construcción y no sé si lo estoy entendiendo bien, pero me gustaría almacenar una URL para locahost (pruebas) y una para producción (sitio en vivo en Internet).
Y necesito cambiarlos dependiendo de qué tipo de compilación. ¿Es esta la manera correcta de hacer esto? o hay otra alternativa?
¿Alguien tiene un pequeño ejemplo?
¿Hay alguna forma de almacenar esta información en un archivo que no necesito confirmar con el control de código fuente? Estoy usando el archivo gradle.properties para almacenar algunas contraseñas que gradle usa para las firmas. Esto funciona muy bien ya que este archivo no comparto en el control de versiones.
Estoy un poco confundido sobre el método correcto a utilizar y cómo implementarlo.
¿Algunas ideas?
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 es lo que debe hacer en Gradle y ejecutar dos aplicaciones (lanzar y depurar) en un mismo teléfono, solo agregue
applicationIdSuffix ".debug"
en la parte de depuración. Como el nombre del paquete será diferente. Esto funcionó para mí.