Generalidades

Use Build Variants (Native y React Native) para configurar diferentes entornos en Android Studio | Autor: Chloe McMullen | easyfundraid.org.uk | Noviembre de 2021

Chloe McMullen
0*pM7Bc1KSAWzoWApq
Foto de Dan Stark en Unsplash

Como desarrolladores, todos sabemos que normalmente existe una forma fácil de hacer algo y una forma correcta de hacer algo. He visto algunas implementaciones locas de intercambio entre entornos, así como algunas implementaciones simples. Estoy aquí para decirte que configurar diferentes entornos para tu proyecto de Android (afortunadamente) es fácil. De hecho, Android Studio también facilita el cambio entre código de producción altamente seguro y código de depuración menos seguro, ¡pero este es el tema de otro día!

Aunque incluí React Native en esta guía, si su código nativo es particularmente simple o sigue el mismo proceso en producción y puesta en escena, es posible que ni siquiera necesite dividir su entorno Android. En easyfundraid, lo necesitamos para intercambiar las claves API requeridas por la base de código local.Solo sé que no es Incorrecto Utilice la misma configuración para dos entornos que utilicen la misma lógica y claves. Pero incluso en este caso, es útil utilizar Build Variants para permitir que se instalen en el dispositivo las versiones de ensayo y de producción de la misma aplicación.

Si desea un tutorial de imágenes claras, desplácese hacia abajo hasta «Comenzar». Si desea aprender a usarlos, desplácese hacia abajo hasta «Ejemplo para cambiar». Esto es TLDR:

  1. Ingrese su proyecto y asegúrese de que su gradle esté sincronizado.
LEER  Kiara Saulters susurrando en mi oído | Por Chris Basinger | enero de 2022

Abra su proyecto en Android Studio. Para las aplicaciones nativas de Android, esto abrirá toda la carpeta del proyecto.Para las aplicaciones React Native, esto abrirá su android carpeta.Si tiene problemas para abrir el proyecto sin errores (un problema sorprendentemente común), intente File > Invalidate Caches / Restart luego haga clic en Invalidate and RestartSi falla, deberá recurrir a StackOverflow.

La opción mágica «invalidar caché / reiniciar».

Suponiendo que todo salió bien hasta ahora (no siempre), debería poder sincronizar sus archivos gradle y comenzar a usarlos.

Abierto File > Project Structure, O presione Control + Alt + Shift + S En Windows o Command + ; En Mac.Cuando aparezca el cuadro de diálogo de estructura del proyecto, seleccione Build Variants Cristal.

Se abre el cuadro de diálogo «Estructura del proyecto» en el panel «Variantes de construcción».

Las variantes de compilación le permiten controlar cómo se compila su aplicación.dentro Build Types Tab, ha creado dos: release con debugEsto le permite controlar si la aplicación debe construirse de diferentes formas en función de este estado, o si debe exponer características que de otro modo no estarían disponibles.Sin embargo, para permitir diferentes entornos, las pestañas que nos interesan son Flavors Etiqueta.

Agregue un menú desplegable para nuevas dimensiones de sabor o nuevos sabores de productos.

Agregar una nueva Flavor Dimension Mantenga el tipo de sabor que distinguirá.Para los propósitos de esta guía, es environments(o env Abreviado).A continuación, elija Add Product Flavor Y para crear un sabor para el escenario y la producción.

Revise las diferentes configuraciones disponibles y decida si desea agregar configuraciones adicionales aquí.Por ejemplo, quiero que mi aplicación de ensayo sea .staging Así que lo puse en el escenario Application ID SuffixEsto me permite descargar tanto la versión de prueba como la versión de producción de la aplicación en el mismo dispositivo Android sin sobrescribir entre sí.

Establezca el sufijo de ID de la aplicación en .staging para permitir que las aplicaciones de producción y las aplicaciones temporales se instalen en un dispositivo.

Después de completar la configuración (puede cambiarla en cualquier momento más adelante), haga clic en Apply o OK. Necesita sincronizar sus archivos Gradle nuevamente porque esto aplicará los cambios a build.gradle (:app) documento.

flavorDimensions 'env'
productFlavors
staging
dimension 'env'
applicationIdSuffix '.staging'

prod
dimension 'env'

También deberías tener dos nuevas opciones Build Variants Panel (se abre en la esquina inferior izquierda de la ventana de Android Studio). Puede usarlo para intercambiar entre diferentes variantes.

Diferentes variantes de construcción disponibles.

Si usa React Native, es posible que observe react-native run-android Ya no es valido. Para resolver este problema, solo necesita agregar la variante que desea construir y cualquier sufijo que tenga ahora:

react-native run-android --variant StagingDebug --appIdSuffix staging

Da da! El proceso está completo y ahora puede usarlos para distinguir lo que desee.

Icono de aplicación

Por lo tanto, ahora tiene la aplicación temporal y la aplicación de producción instaladas en el mismo dispositivo. El problema es que tienen el mismo icono, entonces, ¿cómo puedes distinguirlos?Puedes añadir Staging Hasta el final de su nombre, pero ha sido truncado por puntos suspensivos, así que a menos que lo ponga al principio (¡puede!), No lo verá. En la recaudación de fondos fácil, utilizamos diferentes iconos de aplicaciones para distinguir.

Botón derecho del ratón app > res Carpeta y agregue una nueva Image Asset.

Agregue un nuevo recurso de imagen en la carpeta aplicación> res.

Esto mostrará un cuadro de diálogo para agregar un nuevo recurso de imagen. Para el propósito de esta demostración, elegí dejar que mi aplicación de ensayo use la función de texto, pero en su lugar, puede hacer una imagen de su elección.Una vez que esté satisfecho de que sus activos se muestran de la forma deseada, haga clic en Next.

El cuadro de diálogo «Configurar activos de imagen» se utiliza para establecer el icono en la palabra «Puesta en escena».

De Res Directory Menú desplegable para elegir el estilo adecuado para su entorno escénico.luego haga clic en Finish.

Ahora, cuando reconstruya la aplicación, debería mostrar el nuevo ícono en el entorno donde lo actualizó.

Dos iconos diferentes dependen de la construcción. Es más difícil confundirlos.

Datos únicos para el medio ambiente

¿Necesita cambiar entre datos (por ejemplo, ID de API) según el entorno al que apunta? ¡No hay problema!

Abre tu build.gradle (:app) Archiva y encuentra la ubicación que define el sabor del producto. A continuación, agregue una línea de código a cada sabor para indicar el valor que debe usar, en el siguiente formato:

buildConfigField "data type", "config name", 'config value'

Por ejemplo, mis recursos de API podrían verse así:

flavorDimensions 'env'
productFlavors
staging
dimension 'env'
applicationIdSuffix '.staging'
buildConfigField "String", "API_ID", '"API_ID/staging"'

prod
dimension 'env'
buildConfigField "String", "API_ID", '"API_ID/production"'

Tenga en cuenta que para los campos de cadena, necesita Cerco doble valor: '"value"'.

Una vez que esté satisfecho con estos valores, sincronice su gradle y Build > Make Project. Ahora puede usar el campo BuildConfig para acceder a este campo en la biblioteca de código nativo de Android:

¡Parecía magia!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba