除錯您的加入應用程式模組
一旦您將 Flutter 模組整合到您的專案中,並使用 Flutter 的平台 API 來執行 Flutter 引擎和/或 UI,您就可以像執行一般的 Android 或 iOS 應用程式一樣建置和執行您的 Android 或 iOS 應用程式。
現在,只要您的程式碼包含 FlutterActivity
或 FlutterViewController
,Flutter 就會為 UI 提供支援。
總覽
#您可能習慣於在執行 flutter run
或從 IDE 執行等效命令時,使用您喜愛的一套 Flutter 除錯工具。但是,您也可以在加入應用程式的場景中使用所有 Flutter 除錯功能,例如熱重載、效能覆蓋、DevTools 和設定中斷點。
flutter attach
命令提供這些功能。若要執行此命令,您可以使用 SDK 的 CLI 工具、VS Code 或 IntelliJ IDEA 或 Android Studio。
一旦您執行 FlutterEngine
,flutter attach
命令就會連線。它會保持連線狀態,直到您處置 FlutterEngine
為止。您可以在啟動引擎之前叫用 flutter attach
。flutter attach
命令會等待您的引擎託管的下一個可用的 Dart VM。
從終端機除錯
#若要從終端機附加,請執行 flutter attach
。若要選取特定的目標裝置,請新增 -d <deviceId>
。
flutter attach
此命令應列印類似下列的輸出
Syncing files to device iPhone 15 Pro...
7,738ms (!)
To hot reload the changes while running, press "r".
To hot restart (and rebuild state). press "R".
An Observatory debugger and profiler on iPhone 15 Pro is available at:
http://127.0.0.1:65525/EXmCgco5zjo=/
For a more detailed help message, press "h".
To detach, press "d"; to quit, press "q".
在 Xcode 和 VS Code 中除錯 iOS 擴充功能
#在終端機中建置 Flutter 應用程式的 iOS 版本
#若要產生所需的 iOS 平台相依性,請執行 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)...
先從 VS Code 開始除錯
#如果您使用 VS Code 來除錯大部分程式碼,請從本節開始。
在 VS Code 中啟動 Dart 除錯器
#若要開啟 Flutter 應用程式目錄,請前往 檔案 > 開啟資料夾... 並選擇
my_app
目錄。開啟
lib/main.dart
檔案。如果您可以為多個裝置建置應用程式,則必須先選取裝置。
前往 檢視 > 命令調色盤...
您也可以按 Ctrl / Cmd + Shift + P。
輸入
flutter select
。按一下 Flutter:選取裝置 命令。
選擇您的目標裝置。
按一下除錯圖示 ()。這會開啟 除錯 窗格並啟動應用程式。等待應用程式在裝置上啟動,以及除錯窗格指出 已連線。除錯器第一次啟動需要較長的時間。後續啟動會更快。
此 Flutter 應用程式包含兩個按鈕
- 在瀏覽器中啟動:此按鈕會在您裝置的預設瀏覽器中開啟此頁面。
- 在應用程式中啟動:此按鈕會在您的應用程式內開啟此頁面。此按鈕僅適用於 iOS 或 Android。桌面應用程式會啟動瀏覽器。
啟用自動附加
#您可以將 VS Code 設定為在您開始除錯時附加到您的 Flutter 模組專案。若要啟用此功能,請在您的 Flutter 模組專案中建立 .vscode/launch.json
檔案。
前往 檢視 > 執行。
您也可以按 Ctrl / Cmd + Shift + D。
VS Code 會顯示 執行和除錯 側邊欄。
在此側邊欄中,按一下 建立 launch.json 檔案。
VS Code 會在頂端顯示 選取除錯器 功能表。
選取 Dart & Flutter。
然後,VS Code 會建立並開啟
.vscode/launch.json
檔案。展開以查看 launch.json 檔案的範例
json{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "my_app", "request": "launch", "type": "dart" }, { "name": "my_app (profile mode)", "request": "launch", "type": "dart", "flutterMode": "profile" }, { "name": "my_app (release mode)", "request": "launch", "type": "dart", "flutterMode": "release" } ] }
若要附加,請前往 執行 > 開始除錯。
您也可以按 F5。
在 Xcode 中附加到 Flutter 程序
#若要在 Xcode 中附加到 Flutter 應用程式
前往 除錯 > 附加到程序 >
選取 Runner。它應該位於 附加到程序 功能表頂端的 可能目標 標題下。
先從 Xcode 開始除錯
#如果您使用 Xcode 來除錯大部分程式碼,請從本節開始。
啟動 Xcode 除錯器
#從您的 Flutter 應用程式目錄開啟
ios/Runner.xcworkspace
。使用工具列中的 配置 功能表選取正確的裝置。
如果您沒有偏好,請選擇 iPhone Pro 14。
在 Xcode 中將此 Runner 當作一般應用程式執行。
執行完成時,Xcode 底部的 除錯 區域會顯示一則訊息,其中包含 Dart VM 服務 URI。它類似下列回應
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=/
複製 Dart VM 服務 URI。
在 VS Code 中附加到 Dart VM
#若要開啟命令調色盤,請前往 檢視 > 命令調色盤...
您也可以按 Cmd + Shift + P。
輸入
debug
。按一下 除錯:附加到裝置上的 Flutter 命令。
在 貼上 VM 服務 URI 方塊中,貼上您從 Xcode 複製的 URI,然後按 Enter。
在 Android Studio 中除錯 Android 擴充功能
#若要開啟 Flutter 應用程式目錄,請前往 檔案 > 開啟... 並選擇
my_app
目錄。開啟
lib/main.dart
檔案。選擇虛擬 Android 裝置。前往工具列,開啟最左邊的下拉式功能表,然後按一下 開啟 Android 模擬器:<裝置>。
您可以選擇任何未包含
arm64
的已安裝模擬器。從同一個功能表中,選取虛擬 Android 裝置。
從工具列中,按一下 執行 'main.dart'。
您也可以按 Ctrl + Shift + R。
在應用程式顯示在模擬器中之後,請繼續下一個步驟。
不使用 USB 連線進行除錯
#若要在 iOS 或 Android 裝置上透過 Wi-Fi 除錯您的應用程式,請使用 flutter attach
。
在 iOS 裝置上透過 Wi-Fi 進行除錯
#對於 iOS 目標,請完成下列步驟
依照iOS 設定指南中的說明,確認您的裝置透過 Wi-Fi 連接到 Xcode。
在您的 macOS 開發機器上,開啟 Xcode > 產品 > 配置 > 編輯配置...。
您也可以按 Cmd + <。
按一下 執行。
按一下 引數。
在 啟動時傳遞的引數 中,按一下 +。
如果您的開發機器使用 IPv4,請新增
--vm-service-host=0.0.0.0
。如果您的開發機器使用 IPv6,請新增
--vm-service-host=::0
。
若要判斷您是否位於 IPv6 網路上
#開啟 設定 > Wi-Fi。
按一下您連線的網路。
按一下 詳細資訊...
按一下 TCP/IP。
檢查是否有 IPv6 位址 區段。
在 Android 裝置上透過 Wi-Fi 進行除錯
#依照Android 設定指南中的說明,確認您的裝置透過 Wi-Fi 連接到 Android Studio。
除非另有說明,否則本網站上的文件反映 Flutter 的最新穩定版本。頁面上次更新於 2024-05-08。 檢視原始碼 或 回報問題。