Modos de compilación de Flutter
Describe los modos de compilación de Flutter y cuándo deberías usar el modo debug, release o profile.
Las herramientas de Flutter admiten tres modos al compilar tu app, y un modo headless para pruebas. Eliges un modo de compilación según la etapa del ciclo de desarrollo en la que te encuentres. ¿Estás depurando tu código? ¿Necesitas información de profiling? ¿Estás listo para desplegar tu app?
Un resumen rápido de cuándo usar cada modo es el siguiente:
- Usa el modo debug durante el desarrollo, cuando quieras usar Hot Reload.
- Usa el modo profile cuando quieras analizar el rendimiento.
- Usa el modo release cuando estés listo para publicar tu app.
El resto de la página detalla estos modos.
- Para aprender sobre el modo de pruebas headless, consulta la documentación de la wiki del engine sobre Modos de compilación de Flutter.
- Para aprender a detectar el modo de compilación, echa un vistazo a la publicación del blog Check for Debug/Release Mode in Flutter Apps.
Debug
#En el modo debug, la app está configurada para depurarse en un dispositivo físico, emulador o simulador.
El modo debug para aplicaciones móviles significa que:
- Las Aserciones están habilitadas.
- Las extensiones de servicio están habilitadas.
- La compilación está optimizada para ciclos de desarrollo y ejecución rápidos (pero no para la velocidad de ejecución, tamaño del binario o despliegue).
- La depuración está habilitada, y las herramientas que admiten depuración a nivel de código fuente (como DevTools) pueden conectarse al proceso.
El modo debug para una aplicación web significa que:
- La compilación no está minificada y no se ha realizado tree shaking.
- La app se compila con el compilador dartdevc para facilitar la depuración.
Por defecto, flutter run compila en modo debug.
Tu IDE admite este modo. Android Studio,
por ejemplo, ofrece una opción de menú Run > Debug...,
así como un icono de un insecto verde superpuesto con un pequeño triángulo
en la página del proyecto.
Release
#Usa el modo release para desplegar la app, cuando quieras la máxima optimización y un tamaño de huella mínimo. Para móviles, el modo release (el cual no es compatible con el simulador o emulador) significa que:
- Las aserciones están deshabilitadas.
- La información de depuración es eliminada.
- La depuración está deshabilitada.
- La compilación está optimizada para un inicio rápido, ejecución rápida y tamaños de paquete pequeños.
- Las extensiones de servicio están deshabilitadas.
El modo release para una aplicación web significa que:
- La compilación está minificada y se ha realizado tree shaking.
- La app se compila con el compilador dart2js para un mejor rendimiento.
El comando flutter run --release compila en modo release.
Tu IDE admite este modo. Android Studio, por ejemplo,
ofrece una opción de menú Run > Run..., así como un icono
de botón de ejecución verde triangular en la página del proyecto.
Puedes compilar en modo release para un objetivo específico
con flutter build <target>. Para obtener una lista de objetivos compatibles,
usa flutter help build.
Para obtener más información, consulta la documentación sobre el lanzamiento de apps para iOS y Android.
Profile
#En el modo profile, se mantiene cierta capacidad de depuración—lo suficiente para analizar el rendimiento de tu app. El modo profile está deshabilitado en el emulador y el simulador, porque su comportamiento no es representativo del rendimiento real. En móviles, el modo profile es similar al modo release, con las siguientes diferencias:
- Algunas extensiones de servicio, como la que habilita la superposición de rendimiento (performance overlay), están habilitadas.
- El rastreo está habilitado, y las herramientas que admiten depuración a nivel de código fuente (como DevTools) pueden conectarse al proceso.
El modo profile para una aplicación web significa que:
- La compilación no está minificada pero se ha realizado tree shaking.
- La app se compila con el compilador dart2js.
- DevTools no puede conectarse a una app web de Flutter ejecutándose en modo profile. Usa Chrome DevTools para generar eventos de línea de tiempo para una app web.
Tu IDE admite este modo. Android Studio, por ejemplo,
ofrece una opción de menú Run > Profile....
El comando flutter run --profile compila en modo profile.
Para obtener más información sobre los modos de compilación, consulta Modos de compilación de Flutter.
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.