Saltar al contenido principal

Usar un depurador de lenguaje nativo

Cómo conectar un depurador nativo a tu app de Flutter en ejecución.

Si escribes apps de Flutter solo con código de Dart, puedes depurar tu código usando el depurador de tu IDE. El equipo de Flutter recomienda VS Code.

Si escribes un plugin específico de la plataforma o usas librerías específicas de la plataforma, puedes depurar esa parte de tu código con un depurador nativo.

  • Para depurar código de iOS o macOS escrito en Swift o Objective-C, puedes usar Xcode.
  • Para depurar código de Android escrito en Java o Kotlin, puedes usar Android Studio.
  • Para depurar código de Windows escrito en C++, puedes usar Visual Studio.

This guide shows you how you can connect dos depuradores a tu app de Dart, uno para Dart, y uno para el código nativo.

Depurar código de Dart

#

Esta guía describe cómo usar VS Code para depurar tu app de Flutter. También puedes usar tu IDE preferido con los plugins de Flutter y Dart instalados y configurados.

Depurar código de Dart usando VS Code

#

El siguiente procedimiento explica cómo usar el depurador de Dart con la app de muestra predeterminada de Flutter. Los componentes destacados en VS Code funcionan y aparecen cuando depuras tu propio proyecto de Flutter también.

  1. Crear una app básica de Flutter.

    flutter create my_app
    
    Creating project my_app...
    Resolving dependencies in my_app...
    Got dependencies in my_app.
    Wrote 129 files.
    
    All done!
    You can find general documentation for Flutter at: https://docs.flutter.dev/
    Detailed API documentation is available at: https://api.flutter.dev/
    If you prefer video documentation, consider: https://www.youtube.com/c/flutterdev
    
    In order to run your application, type:
    
      $ cd my_app
      $ flutter run
    
    Your application code is in my_app/lib/main.dart.
    
    cd my_app
    
  2. Abre el archivo lib\main.dart en la app de Flutter usando VS Code.

  3. Haz clic en el icono del insecto (Icono de depuración de VS Code para activar el modo de depuración de una aplicación Flutter). Esto abre los siguientes paneles en VS Code:

    • Debug
    • Debug Console
    • Widget Inspector

    La primera vez que ejecutas el depurador es la que más tarda.

  4. Probar el depuración.

    a. En main.dart, haz clic en esta línea:

    dart
    _counter++;
    

    b. Presiona Shift + F9. Esto añade un punto de interrupción (breakpoint) donde se incrementa la variable _counter.

    c. En la app, haz clic en el botón + para incrementar el contador. La app se pausa.

    d. En este punto, VS Code muestra:

    • In the Editor Groups:
      • El punto de interrupción resaltado en main.dart
      • La jerarquía de widgets para la app de Flutter en el Widget Tree del Widget Inspector
    • In the side bar:
      • El estado de la app en la sección Call Stack
      • El valor de la variable local this en la sección Variables
    • In the panel:
      • El registro de la app de Flutter en la Debug console

Depurador de Flutter en VS Code

#

El plugin de Flutter para VS Code añade una serie de componentes a la interfaz de usuario de VS Code.

Cambios en la interfaz de VS Code

#

Al iniciarse, el depurador de Flutter añade herramientas de depuración a la interfaz de VS Code.

La siguiente captura de pantalla y tabla explican el propósito de cada herramienta.

VS Code con las adiciones de interfaz del complemento de Flutter

Color destacado en la captura de pantallaBarra, panel o pestañaContenidos
Yellow Variables Lista de valores actuales de variables en la app de Flutter
WatchLista de elementos que elegiste rastrear en la app de Flutter
Call StackPila de subrutinas activas en la app de Flutter
Puntos de interrupción (Breakpoints)Lista de excepciones y puntos de interrupción establecidos que definiste
Green <Flutter files> Archivos que estás editando
Pink Widget Inspector Jerarquía de widgets en la app de Flutter en ejecución
Blue Layout Explorer Visualización de cómo Flutter posicionó el widget que seleccionaste en el Widget Inspector
Widget Details Tree Lista de propiedades del widget seleccionado en el Widget Inspector
Orange Problemas Lista de problemas que el analizador de Dart encontró en el archivo de Dart actual
SalidaRespuesta que devuelve la app de Flutter al construir una app
Consola de depuración Registros o mensajes de error que la app de Flutter genera mientras se depura
TerminalPrompt del shell del sistema contenido en VS Code

Para cambiar dónde aparece el panel (en naranja) en VS Code, ve a View > Appearance > Panel Position.

Barra de herramientas de depuración de Flutter en VS Code

#

La barra de herramientas te permite depurar usando cualquier depurador. Puedes avanzar por instrucciones, salir y pasar por alto sentencias de Dart, hacer Hot Reload o reanudar la app.

Barra de herramientas del depurador de Flutter en VS Code

IconAcciónAtajo de teclado predeterminado
Pequeña línea vertical azul con un triángulo azul que indica reproducir o reanudar la app de Flutter
Iniciar o ReanudarF5
Pequeña doble línea vertical azul que indica pausar la app de Flutter
PausarF6
Pequeña flecha arqueada azul sobre un círculo azul que indica omitir el bloque o instrucción actual en la app de Flutter
Paso a paso por procedimientos (Step Over)F10
Pequeña flecha azul hacia abajo sobre un círculo azul que indica entrar en la siguiente función en una app de Flutter
Paso a paso por instrucciones (Step Into)F11
Pequeña flecha azul hacia arriba sobre un círculo azul que indica salir de la función actual tras una pasada en una app de Flutter
Salir (Step Out)Shift + F11
Pequeño rayo amarillo que indica recargar la interfaz de usuario de una app de Flutter sin reiniciar los valores de State
Hot ReloadCtrl + F5
Pequeña flecha verde casi circular que indica recargar la interfaz de usuario de una app de Flutter y reiniciar los valores de State
Hot RestartShift + Special + F5
Cuadrado rojo vacío que indica que deseas detener la app de Flutter en ejecución
DetenerShift + F5
Pequeña lupa azul con el logo de Flutter dentro que abre el Widget Inspector
Abrir Widget Inspector

Actualizar app de Flutter de prueba

#

Para el resto de esta guía, necesitas actualizar la app de Flutter de prueba. Esta actualización añade código nativo para depurar.

  1. Abre el archivo lib/main.dart usando tu IDE preferido.

  2. Reemplaza el contenido de main.dart con el siguiente código.

    Expandir para ver el código de Flutter de este ejemplo
    lib/main.dart
    dart
    // Copyright 2023 The Flutter Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    
    import 'package:flutter/material.dart';
    import 'package:url_launcher/url_launcher.dart';
    
    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'URL Launcher',
          theme: ThemeData(
            colorSchemeSeed: Colors.purple,
            brightness: Brightness.light,
          ),
          home: const MyHomePage(title: 'URL Launcher'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      const MyHomePage({super.key, required this.title});
      final String title;
    
      @override
      State<MyHomePage> createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      Future<void>? _launched;
    
      Future<void> _launchInBrowser(Uri url) async {
        if (!await launchUrl(
          url,
          mode: LaunchMode.externalApplication,
        )) {
          throw Exception('Could not launch $url');
        }
      }
    
      Future<void> _launchInWebView(Uri url) async {
        if (!await launchUrl(
          url,
          mode: LaunchMode.inAppWebView,
        )) {
          throw Exception('Could not launch $url');
        }
      }
    
      Widget _launchStatus(BuildContext context, AsyncSnapshot<void> snapshot) {
        if (snapshot.hasError) {
          return Text('Error: ${snapshot.error}');
        } else {
          return const Text('');
        }
      }
    
      @override
      Widget build(BuildContext context) {
        final Uri toLaunch = Uri(
            scheme: 'https',
            host: 'docs.flutter.dev',
            path: 'testing/native-debugging');
        return Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Padding(
                  padding: const EdgeInsets.all(16),
                  child: Text(toLaunch.toString()),
                ),
                FilledButton(
                  onPressed: () => setState(() {
                    _launched = _launchInBrowser(toLaunch);
                  }),
                  child: const Text('Launch in browser'),
                ),
                const Padding(padding: EdgeInsets.all(16)),
                FilledButton(
                  onPressed: () => setState(() {
                    _launched = _launchInWebView(toLaunch);
                  }),
                  child: const Text('Launch in app'),
                ),
                const Padding(padding: EdgeInsets.all(16.0)),
                FutureBuilder<void>(future: _launched, builder: _launchStatus),
              ],
            ),
          ),
        );
      }
    }
    
  3. Para añadir el paquete url_launcher como una dependencia, ejecuta flutter pub add:

    flutter pub add url_launcher
    
    Resolving dependencies...
      collection 1.17.1 (1.17.2 available)
    + flutter_web_plugins 0.0.0 from sdk flutter
      matcher 0.12.15 (0.12.16 available)
      material_color_utilities 0.2.0 (0.8.0 available)
    + plugin_platform_interface 2.1.4
      source_span 1.9.1 (1.10.0 available)
      stream_channel 2.1.1 (2.1.2 available)
      test_api 0.5.1 (0.6.1 available)
    + url_launcher 6.1.11
    + url_launcher_android 6.0.36
    + url_launcher_ios 6.1.4
    + url_launcher_linux 3.0.5
    + url_launcher_macos 3.0.5
    + url_launcher_platform_interface 2.1.3
    + url_launcher_web 2.0.17
    + url_launcher_windows 3.0.6
    Changed 10 dependencies!
    
  4. Para comprobar qué cambió en la base de código:

    1. En Linux o macOS, ejecuta este comando find.

      find ./ -mmin -120
      
      ./ios/Flutter/Debug.xcconfig
      ./ios/Flutter/Release.xcconfig
      ./linux/flutter/generated_plugin_registrant.cc
      ./linux/flutter/generated_plugins.cmake
      ./macos/Flutter/Flutter-Debug.xcconfig
      ./macos/Flutter/Flutter-Release.xcconfig
      ./macos/Flutter/GeneratedPluginRegistrant.swift
      ./pubspec.lock
      ./pubspec.yaml
      ./windows/flutter/generated_plugin_registrant.cc
      ./windows/flutter/generated_plugins.cmake
      
    2. En Windows, ejecuta este comando en el símbolo del sistema.

      Get-ChildItem C:\dev\example\ -Rescurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)}
      
      C:\dev\example\ios\Flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                Debug.xcconfig
                      8/1/2025   9:15 AM                Release.xcconfig
      
      C:\dev\example\linux\flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                generated_plugin_registrant.cc
                      8/1/2025   9:15 AM                generated_plugins.cmake
      
      C:\dev\example\macos\Flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                Flutter-Debug.xcconfig
                      8/1/2025   9:15 AM                Flutter-Release.xcconfig
                      8/1/2025   9:15 AM                GeneratedPluginRegistrant.swift
      
      C:\dev\example\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                pubspec.lock
                      8/1/2025   9:15 AM                pubspec.yaml
      
      C:\dev\example\windows\flutter\
      
      
      Mode                LastWriteTime         Length Name
      ----                -------------         ------ ----
                      8/1/2025   9:15 AM                generated_plugin_registrant.cc
                      8/1/2025   9:15 AM                generated_plugins.cmake
      

La instalación de url_launcher añadió archivos de configuración y archivos de código para todas las plataformas de destino en el directorio de la app de Flutter.

Depurar código de Dart y de lenguaje nativo al mismo tiempo

#

Esta sección explica cómo depurar el código de Dart en tu app de Flutter y cualquier código nativo con su depurador habitual. Esta capacidad te permite aprovechar el Hot Reload de Flutter al editar código nativo.

Depurar código de Dart y Android usando Android Studio

#

Para depurar código nativo de Android, necesitas una app de Flutter que contenga código de Android. En esta sección, aprenderás a conectar los depuradores de Dart, Java y Kotlin a tu app. No necesitas VS Code para depurar tanto el código de Dart como el de Android. Esta guía incluye las instrucciones de VS Code para ser consistente con las guías de Xcode y Visual Studio.

Esta sección usa la misma app de ejemplo de Flutter con url_launcher creada en Actualizar app de Flutter de prueba.

Construir la versión de Android de la app de Flutter en la Terminal

#

Para generar las dependencias de la plataforma Android necesarias, ejecuta el comando flutter build.

flutter build appbundle --debug
Running Gradle task 'bundleDebug'...                               27.1s
✓ Built build/app/outputs/bundle/debug/app-debug.aab.

Iniciar la depuración primero con VS Code

#

Si utilizas VS Code para depurar la mayor parte de tu código, comienza con esta sección.

  1. Para abrir el directorio de la aplicación Flutter, ve a File > Open Folder... y elige el directorio my_app.

  2. Abre el archivo lib/main.dart.

  3. Si puedes compilar una aplicación para más de un dispositivo, debes seleccionar el dispositivo primero.

    Ve a View > Command Palette...

    También puedes presionar Ctrl / Cmd + Shift + P.

  4. Escribe flutter select.

  5. Haz clic en el comando Flutter: Select Device.

  6. Elige tu dispositivo de destino.

  7. Haz clic en el icono de depuración (Icono de depuración de VS Code para activar el modo de depuración de una aplicación Flutter). Esto abre el panel Debug y lanza la aplicación. Espera a que la aplicación se lance en el dispositivo y a que el panel de depuración indique Connected. El depurador tarda más tiempo en lanzarse la primera vez. Los lanzamientos posteriores se inician más rápido.

    Esta aplicación Flutter contiene dos botones:

    • Launch in browser: Este botón abre esta página en el navegador predeterminado de tu dispositivo.
    • Launch in app: Este botón abre esta página dentro de tu aplicación. Este botón solo funciona para iOS o Android. Las aplicaciones de escritorio lanzan un navegador.

Adjuntar al proceso de Flutter en Android Studio

#
  1. Haz clic en el botón Attach debugger to Android process. (Diminuto insecto verde superpuesto con una flecha gris clara)

    :::tip Si este botón no aparece en la barra de menú de Projects, verifica que hayas abierto el proyecto de la aplicación de Flutter pero no un plugin de Flutter. :::

  2. El cuadro de diálogo process muestra una entrada por cada dispositivo conectado. Selecciona show all processes para mostrar los procesos disponibles para cada dispositivo.

  3. Elige el proceso al que deseas adjuntarte. Para esta guía, selecciona el proceso com.example.my_app usando el Emulator Pixel_5_API_33.

  4. Ubica la pestaña de Android Debugger en el panel Debug.

  5. En el panel Project, expande my_app_android > android > app > src > main > java > io.flutter plugins.

  6. Haz doble clic en GeneratedProjectRegistrant para abrir el código de Java en el panel Edit.

Al final de este procedimiento, tanto el depurador de Dart como el de Android interactúan con el mismo proceso. Usa cualquiera de los dos, o ambos, para establecer puntos de interrupción (breakpoints), examinar la pila (stack), reanudar la ejecución y similares. En otras palabras, ¡depura!

Comenzar a depurar con Android Studio primero

#

Si usas Android Studio para depurar la mayor parte de tu código, comienza con esta sección.

  1. Para abrir el directorio de la app de Flutter, ve a File > Open... y elige el directorio my_app.

  2. Abre el archivo lib/main.dart.

  3. Elige un dispositivo virtual de Android. Ve a la barra de herramientas, abre el menú desplegable de más a la izquierda y haz clic en Open Android Emulator: <device>.

    Puedes elegir cualquier emulador instalado que no incluya arm64.

  4. En ese mismo menú, selecciona el dispositivo Android virtual.

  5. Desde la barra de herramientas, haz clic en Run 'main.dart'.

    También puedes presionar Ctrl + Shift + R.

    Una vez que la aplicación se muestre en el emulador, continúa con el siguiente paso.

  6. Haz clic en el botón Attach debugger to Android process. (Diminuto insecto verde superpuesto con una flecha gris clara)

    :::tip Si este botón no aparece en la barra de menú de Projects, verifica que hayas abierto el proyecto de la aplicación de Flutter pero no un plugin de Flutter. :::

  7. El cuadro de diálogo process muestra una entrada por cada dispositivo conectado. Selecciona show all processes para mostrar los procesos disponibles para cada dispositivo.

  8. Elige el proceso al que deseas adjuntarte. Para esta guía, selecciona el proceso com.example.my_app usando el Emulator Pixel_5_API_33.

  9. Ubica la pestaña de Android Debugger en el panel Debug.

  10. En el panel Project, expande my_app_android > android > app > src > main > java > io.flutter plugins.

  11. Haz doble clic en GeneratedProjectRegistrant para abrir el código de Java en el panel Edit.

Al final de este procedimiento, tanto el depurador de Dart como el de Android interactúan con el mismo proceso. Usa cualquiera de los dos, o ambos, para establecer puntos de interrupción (breakpoints), examinar la pila (stack), reanudar la ejecución y similares. En otras palabras, ¡depura!

Depurar código de Dart e iOS usando Xcode

#

Para depurar código de iOS, necesitas una app de Flutter que contenga código de iOS. En esta sección, aprenderás a conectar dos depuradores a tu app: Flutter a través de VS Code y Xcode. Necesitas ejecutar tanto VS Code como Xcode.

Esta sección usa la misma app de ejemplo de Flutter con url_launcher creada en Actualizar app de Flutter de prueba.

Compilar la versión de iOS de la aplicación Flutter en la terminal

#

Para generar las dependencias de plataforma de iOS necesarias, ejecuta el comando flutter build.

flutter build ios --config-only --no-codesign --debug
Warning: Building for device with codesigning disabled. You will have to manually codesign before deploying to device.
Building com.example.myApp for device (ios)...

Iniciar la depuración primero con VS Code

#

Si utilizas VS Code para depurar la mayor parte de tu código, comienza con esta sección.

Iniciar el depurador de Dart en VS Code
#
  1. Para abrir el directorio de la aplicación Flutter, ve a File > Open Folder... y elige el directorio my_app.

  2. Abre el archivo lib/main.dart.

  3. Si puedes compilar una aplicación para más de un dispositivo, debes seleccionar el dispositivo primero.

    Ve a View > Command Palette...

    También puedes presionar Ctrl / Cmd + Shift + P.

  4. Escribe flutter select.

  5. Haz clic en el comando Flutter: Select Device.

  6. Elige tu dispositivo de destino.

  7. Haz clic en el icono de depuración (Icono de depuración de VS Code para activar el modo de depuración de una aplicación Flutter). Esto abre el panel Debug y lanza la aplicación. Espera a que la aplicación se lance en el dispositivo y a que el panel de depuración indique Connected. El depurador tarda más tiempo en lanzarse la primera vez. Los lanzamientos posteriores se inician más rápido.

    Esta aplicación Flutter contiene dos botones:

    • Launch in browser: Este botón abre esta página en el navegador predeterminado de tu dispositivo.
    • Launch in app: Este botón abre esta página dentro de tu aplicación. Este botón solo funciona para iOS o Android. Las aplicaciones de escritorio lanzan un navegador.
Acoplar al proceso de Flutter en Xcode
#

Para acoplar a la aplicación Flutter en Xcode:

  1. Ve a Debug > Attach to Process.

  2. Selecciona Runner. Debería estar en la parte superior del menú Attach to Process bajo el encabezado Likely Targets.

Iniciar la depuración primero con Xcode

#

Si utilizas Xcode para depurar la mayor parte de tu código, comienza con esta sección.

Iniciar el depurador de Xcode
#
  1. Abre ios/Runner.xcworkspace desde el directorio de tu aplicación Flutter.

  2. Selecciona el dispositivo correcto utilizando el menú Scheme en la barra de herramientas.

    Si no tienes preferencia, elige iPhone Pro 14.

  3. Ejecuta este Runner como una aplicación normal en Xcode.

    Cuando finaliza la ejecución, el área Debug en la parte inferior de Xcode muestra un mensaje con la URI del servicio Dart VM. Se asemeja a la siguiente respuesta:

    2023-07-12 14:55:39.966191-0500 Runner[58361:53017145]
        flutter: The Dart VM service is listening on
        http://127.0.0.1:50642/00wEOvfyff8=/
    
  4. Copia la URI del servicio Dart VM.

Acoplar a la Dart VM en VS Code
#
  1. Para abrir la paleta de comandos, ve a View > Command Palette...

    También puedes presionar Cmd + Shift + P.

  2. Escribe debug.

  3. Haz clic en el comando Debug: Attach to Flutter on Device.

  4. En la casilla Paste an VM Service URI, pega la URI que copiaste de Xcode y presiona Enter.

Depurar código de Dart y macOS usando Xcode

#

Para depurar código de macOS, necesitas una app de Flutter que contenga código de macOS. En esta sección, aprenderás a conectar dos depuradores a tu app: Flutter a través de VS Code y Xcode. Necesitas ejecutar tanto VS Code como Xcode.

Esta sección usa la misma app de ejemplo de Flutter con url_launcher creada en Actualizar app de Flutter de prueba.

Construir la versión de macOS de la app de Flutter en la Terminal

#

Para generar las dependencias de la plataforma macOS necesarias, ejecuta el comando flutter build.

flutter build macos --debug
Building macOS application...

Iniciar la depuración primero con VS Code

#
Iniciar el depurador en VS Code
#
  1. Para abrir el directorio de la aplicación Flutter, ve a File > Open Folder... y elige el directorio my_app.

  2. Abre el archivo lib/main.dart.

  3. Si puedes compilar una aplicación para más de un dispositivo, debes seleccionar el dispositivo primero.

    Ve a View > Command Palette...

    También puedes presionar Ctrl / Cmd + Shift + P.

  4. Escribe flutter select.

  5. Haz clic en el comando Flutter: Select Device.

  6. Elige tu dispositivo de destino.

  7. Haz clic en el icono de depuración (Icono de depuración de VS Code para activar el modo de depuración de una aplicación Flutter). Esto abre el panel Debug y lanza la aplicación. Espera a que la aplicación se lance en el dispositivo y a que el panel de depuración indique Connected. El depurador tarda más tiempo en lanzarse la primera vez. Los lanzamientos posteriores se inician más rápido.

    Esta aplicación Flutter contiene dos botones:

    • Launch in browser: Este botón abre esta página en el navegador predeterminado de tu dispositivo.
    • Launch in app: Este botón abre esta página dentro de tu aplicación. Este botón solo funciona para iOS o Android. Las aplicaciones de escritorio lanzan un navegador.
Acoplar al proceso de Flutter en Xcode
#
  1. Para adjuntarte a la app de Flutter, ve a Debug > Attach to Process > Runner.

    Runner debería estar en la parte superior del menú Attach to Process bajo el encabezado Likely Targets.

Iniciar la depuración primero con Xcode

#
Iniciar el depurador en Xcode
#
  1. Abre macos/Runner.xcworkspace desde el directorio de tu app de Flutter.

  2. Ejecuta este Runner como una aplicación normal en Xcode.

    Cuando finalice la ejecución, el área de Debug en la parte inferior de Xcode muestra un mensaje con el URI del servicio de la VM de Dart. Se asemeja a la siguiente respuesta:

    2023-07-12 14:55:39.966191-0500 Runner[58361:53017145]
        flutter: The Dart VM service is listening on
        http://127.0.0.1:50642/00wEOvfyff8=/
    
  3. Copia la URI del servicio Dart VM.

Acoplar a la Dart VM en VS Code
#
  1. Para abrir la paleta de comandos, ve a View > Command Palette...

    También puedes presionar Cmd + Shift + P.

  2. Escribe debug.

  3. Haz clic en el comando Debug: Attach to Flutter on Device.

  4. En el cuadro Paste an VM Service URI, pega el URI que copiaste de Xcode y presiona Enter.

Depurar código de Dart y C++ usando Visual Studio

#

Para depurar código de C++, necesitas una app de Flutter que contenga código de C++. En esta sección, aprenderás a conectar dos depuradores a tu app: Flutter a través de VS Code y Visual Studio. Necesitas ejecutar tanto VS Code como Visual Studio.

Esta sección usa la misma app de ejemplo de Flutter con url_launcher creada en Actualizar app de Flutter de prueba.

Construir la versión de Windows de la app de Flutter en PowerShell o en el Símbolo del sistema

#

Para generar las dependencias de la plataforma Windows necesarias, ejecuta el comando flutter build.

C:\> flutter build windows --debug
Building Windows application...                                    31.4s
√  Built build\windows\runner\Debug\my_app.exe.

Iniciar la depuración primero con VS Code

#

Si utilizas VS Code para depurar la mayor parte de tu código, comienza con esta sección.

Iniciar el depurador en VS Code
#
  1. Para abrir el directorio de la aplicación Flutter, ve a File > Open Folder... y elige el directorio my_app.

  2. Abre el archivo lib/main.dart.

  3. Si puedes compilar una aplicación para más de un dispositivo, debes seleccionar el dispositivo primero.

    Ve a View > Command Palette...

    También puedes presionar Ctrl / Cmd + Shift + P.

  4. Escribe flutter select.

  5. Haz clic en el comando Flutter: Select Device.

  6. Elige tu dispositivo de destino.

  7. Haz clic en el icono de depuración (Icono de depuración de VS Code para activar el modo de depuración de una aplicación Flutter). Esto abre el panel Debug y lanza la aplicación. Espera a que la aplicación se lance en el dispositivo y a que el panel de depuración indique Connected. El depurador tarda más tiempo en lanzarse la primera vez. Los lanzamientos posteriores se inician más rápido.

    Esta aplicación Flutter contiene dos botones:

    • Launch in browser: Este botón abre esta página en el navegador predeterminado de tu dispositivo.
    • Launch in app: Este botón abre esta página dentro de tu aplicación. Este botón solo funciona para iOS o Android. Las aplicaciones de escritorio lanzan un navegador.
Adjuntar al proceso de Flutter en Visual Studio
#
  1. Para abrir el archivo de solución del proyecto, ve a File > Open > Project/Solution…

    También puedes presionar Ctrl + Shift + O.

  2. Elige el archivo build/windows/my_app.sln en el directorio de tu app de Flutter.

  3. Ve a Debug > Attach to Process.

    También puedes presionar Ctrl + Alt + P.

  4. Desde el cuadro de diálogo Attach to Process, elige my_app.exe.

    Visual Studio comienza a monitorear la app de Flutter.

Comenzar a depurar con Visual Studio primero

#

Si usas Visual Studio para depurar la mayor parte de tu código, comienza con esta sección.

Iniciar el depurador local de Windows
#
  1. Para abrir el archivo de solución del proyecto, ve a File > Open > Project/Solution…

    También puedes presionar Ctrl + Shift + O.

  2. Elige el archivo build/windows/my_app.sln en el directorio de tu app de Flutter.

  3. Establece my_app como el proyecto de inicio. En el Solution Explorer, haz clic derecho en my_app y selecciona Set as Startup Project.

  4. Haz clic en Local Windows Debugger para comenzar a depurar.

    También puedes presionar F5.

    Cuando la app de Flutter se haya iniciado, una ventana de consola muestra un mensaje con el URI del servicio de la VM de Dart. Se asemeja a la siguiente respuesta:

    flutter: The Dart VM service is listening on http://127.0.0.1:62080/KPHEj2qPD1E=/
    
  5. Copia la URI del servicio Dart VM.

Acoplar a la Dart VM en VS Code
#
  1. Para abrir la paleta de comandos, ve a View > Command Palette...

    También puedes presionar Cmd + Shift + P.

  2. Escribe debug.

  3. Haz clic en el comando Debug: Attach to Flutter on Device.

  4. En el cuadro Paste an VM Service URI, pega el URI que copiaste de Visual Studio y presiona Enter.

Recursos

#

Echa un vistazo a los siguientes recursos sobre depuración en Flutter, iOS, Android, macOS y Windows:

Flutter

#

Android

#

Puedes encontrar los siguientes recursos de depuración en developer.android.com.

iOS y macOS

#

Puedes encontrar los siguientes recursos de depuración en developer.apple.com.

Windows

#

Puedes encontrar recursos de depuración en Microsoft Learn.