studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-studio android-gradle android-build

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í.