Once you’ve integrated the Flutter module to your project and used Flutter’s platform APIs to run the Flutter engine and/or UI, you can then build and run your Android or iOS app the same way you run normal Android or iOS apps.
However, Flutter is now powering the UI in places where you’re showing a
You might be used to having your suite of favorite Flutter debugging tools
available to you automatically when running
flutter run or an equivalent
command from an IDE. But you can also use all your Flutter
debugging functionalities such as hot reload, performance
overlays, DevTools, and setting breakpoints in add-to-app scenarios.
These functionalities are provided by the
flutter attach mechanism.
flutter attach can be initiated through different pathways,
such as through the SDK’s CLI tools,
through VS Code or IntelliJ/Android Studio.
flutter attach can connect as soon as you run your
remains attached until your
FlutterEngine is disposed. But you can invoke
flutter attach before starting your engine.
flutter attach waits for
the next available Dart VM that is hosted by your engine.
flutter attach or
flutter attach -d deviceId to attach from the terminal.
Build the iOS version of the Flutter app in the Terminal
To generate the needed iOS platform dependencies,
flutter build command.
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)...
Start debugging with VS Code first
If you use VS Code to debug most of your code, start with this section.
Start the Dart debugger in VS Code
To open the Flutter app directory, go to File > Open Folder… and choose the
If you can build an app for more than one device, you must select the device first.
Go to View > Command Palette…
You can also press Ctrl / Cmd + Shift + P.
Click the Flutter: Select Device command.
Choose your target device.
Click the debug icon (). This opens the Debug pane and launches the app. Wait for the app to launch on the device and for the debug pane to indicate Connected. The debugger takes longer to launch the first time. Subsequent launches start faster.
This Flutter app contains two buttons:
- Launch in browser: This button opens this page in the default browser of your device.
- Launch in app: This button opens this page within your app. This button only works for iOS or Android. Desktop apps launch a browser.
Attach to the Flutter process in Xcode
To attach to the Flutter app, go to Debug > Attach to Process > Runner.
Runner should be at the top of the Attach to Process menu under the Likely Targets heading.
Start debugging with Xcode first
If you use Xcode to debug most of your code, start with this section.
Start the Xcode debugger
ios/Runner.xcworkspacefrom your Flutter app directory.
Select the correct device using the Scheme menu in the toolbar.
If you have no preference, choose iPhone Pro 14.
Run this Runner as a normal app in Xcode.
When the run completes, the Debug area at the bottom of Xcode displays a message with the Dart VM service URI. It resembles the following response:
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=/
Copy the Dart VM service URI.
Attach to the Dart VM in VS Code
To open the command palette, go to View > Command Palette…
You can also press Cmd + Shift + P.
Click the Debug: Attach to Flutter on Device command.
In the Paste an VM Service URI box, paste the URI you copied from Xcode and press Enter.
You can also create a
.vscode/launch.json file in your Flutter module project.
This enables you to attach using the Run > Start Debugging command or
name: "Flutter: Attach",
IntelliJ / Android Studio
Select the device on which the Flutter module runs so
flutter attach filters for the right start signals.
You can debug your app wirelessly on an iOS or Android device
On iOS, you must follow the steps below:
Ensure that your device is wirelessly connected to Xcode as described in the iOS setup guide.
Open Xcode > Product > Scheme > Edit Scheme
Select the Arguments tab
--vm-service-host=0.0.0.0for IPv4, or
--vm-service-host=::0for IPv6 as a launch argument
You can determine if you’re on an IPv6 network by opening your Mac’s Settings > Wi-Fi > Details (of the network you’re connected to) > TCP/IP and check to see if there is an IPv6 address section.
Ensure that your device is wirelessly connected to Android Studio as described in the Android setup guide.