Cuando trabajas con múltiples flavors en Flutter (desarrollo, staging, producción), cambiar entre ellos puede ser tedioso. A diferencia de los proyectos nativos de Android donde puedes seleccionar Build Variants desde la UI, en proyectos Flutter no existe esa opción visual en Android Studio. Las run configurations te permiten cambiar de entorno con un solo clic
¿Por qué es útil?
En lugar de escribir manualmente flutter run --flavor dev o flutter run --flavor prod cada vez, puedes:
- Cambiar de flavor con un simple desplegable en la barra de herramientas
- Guardar configuraciones específicas para cada entorno
- Compartir estas configuraciones con tu equipo a través del control de versiones
Configuración paso a paso
1. Crear el directorio de configuraciones
En la raíz de tu proyecto, asegúrate de que existe la carpeta .idea/runConfigurations/:
mkdir -p .idea/runConfigurations
2. Crear archivos de configuración
Crea un archivo XML para cada flavor. Por ejemplo, para el entorno de desarrollo (main.dart (dev).xml):
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="main.dart (dev)" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="additionalArgs" value="--flavor dev" />
<option name="filePath" value="$PROJECT_DIR$/lib/main.dart" />
<method v="2" />
</configuration>
</component>
3. Crear configuraciones para otros entornos
Repite el proceso para cada flavor que necesites:
main.dart (stg).xml (staging):
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="main.dart (stg)" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="additionalArgs" value="--flavor stg" />
<option name="filePath" value="$PROJECT_DIR$/lib/main.dart" />
<method v="2" />
</configuration>
</component>
main.dart (prod).xml (producción):
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="main.dart (prod)" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="additionalArgs" value="--flavor prod" />
<option name="filePath" value="$PROJECT_DIR$/lib/main.dart" />
<method v="2" />
</configuration>
</component>
4. Usar las configuraciones
Una vez creados los archivos:
- Reinicia Android Studio
- Verás las nuevas configuraciones en el desplegable de la barra de herramientas
- Selecciona el entorno que quieres ejecutar y pulsa el botón de Run
5. Establecer una configuración por defecto
Para que una configuración se ejecute por defecto al abrir el proyecto, debes editar el archivo .idea/workspace.xml y añadir la siguiente línea dentro del componente RunManager:
<option name="selected" value="Flutter.main.dart (dev)" />
El valor debe coincidir con el nombre de tu configuración. Por ejemplo, si tu configuración se llama "main.dart (dev)", el valor será "Flutter.main.dart (dev)".
Importante: El archivo workspace.xml es local y no se comparte a través del control de versiones. Esto significa que:
- ⚠️ Si borras la caché de Android Studio (
File > Invalidate Caches...), esta configuración desaparecerá - ⚠️ Cada miembro del equipo debe establecer su propia configuración por defecto
Ventajas
- ✅ Productividad: Cambia de entorno con un clic
- ✅ Sin errores: No necesitas recordar los comandos de cada flavor
- ✅ Colaboración: Todo el equipo tiene las mismas configuraciones
- ✅ Personalización: Puedes añadir más parámetros según tus necesidades (target, build mode, etc.)
Personalización adicional
Puedes ampliar las configuraciones con más opciones según tus necesidades:
<configuration default="false" name="main.dart (dev-profile)" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="additionalArgs" value="--flavor dev --profile" />
<option name="filePath" value="$PROJECT_DIR$/lib/main.dart" />
<method v="2" />
</configuration>
Con estas run configurations, cambiar entre entornos en tu proyecto Flutter es tan simple como seleccionar una opción del menú desplegable