除錯您的 add-to-app 模組
在將 Flutter 模組整合到您的專案中並使用 Flutter 的平臺 API 執行 Flutter 引擎和/或 UI 後,您就可以像執行普通 Android 或 iOS 應用一樣構建和執行您的 Android 或 iOS 應用了。
現在,凡是您的程式碼中包含 FlutterActivity 或 FlutterViewController 的地方,Flutter 都會為其提供支援。
概述
#您可能習慣於在執行 flutter run 或 IDE 中的等效命令時使用一套您喜歡的 Flutter 除錯工具。但在 add-to-app 場景下,您也可以使用所有 Flutter 除錯功能,例如熱過載、效能覆蓋、DevTools 以及在 add-to-app 中設定斷點。
flutter attach 命令提供了這些功能。要執行此命令,您可以使用 SDK 的 CLI 工具、VS Code、IntelliJ IDEA 或 Android Studio。
flutter attach 命令在您執行 FlutterEngine 後進行連線。它會一直保持連線狀態,直到您的 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".在 Xcode 和 VS Code 中除錯 iOS 擴充套件
#在終端中構建 Flutter 應用的 iOS 版本
#要生成所需的 iOS 平臺依賴項,請執行 flutter build 命令。
flutter build ios --config-only --no-codesign --debugWarning: 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: Select Device** 命令。
選擇您的目標裝置。
點選除錯圖示(
)。這將開啟 **除錯** 窗格並啟動應用。等待應用在裝置上啟動,並等待除錯窗格顯示 **已連線**。偵錯程式首次啟動時會花費更長時間。後續啟動會更快。此 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**。它應該在 **可能的 targets** 標題下的 **附加到程序** 選單的頂部。
首先使用 Xcode 開始除錯
#如果您使用 Xcode 除錯大部分程式碼,請從本節開始。
啟動 Xcode 偵錯程式
#從您的 Flutter 應用目錄中開啟
ios/Runner.xcworkspace。在工具欄中使用 **Scheme** 選單選擇正確的裝置。
如果沒有偏好,請選擇 **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。點選 **Debug: Attach to Flutter on Device** 命令。
在 **Paste an VM Service URI**(貼上 VM 服務 URI)框中,貼上您從 Xcode 複製的 URI,然後按 Enter。
在 Android Studio 中除錯 Android 擴充套件
#要開啟 Flutter 應用目錄,請前往 **檔案** > **開啟...**,然後選擇
my_app目錄。開啟
lib/main.dart檔案。選擇一個虛擬 Android 裝置。轉到工具欄,開啟最左側的下拉選單,然後點選 **Open Android Emulator: <device>**(開啟 Android 模擬器:<裝置>)。
您可以選擇任何已安裝且不包含
arm64的模擬器。從同一個選單中,選擇虛擬 Android 裝置。
在工具欄中,點選 **Run 'main.dart'**(執行 'main.dart')。
您也可以按下 Ctrl + Shift + R。
在模擬器中顯示應用後,繼續下一步。
無需 USB 連線即可除錯
#要在 iOS 或 Android 裝置上透過 Wi-Fi 除錯您的應用,請使用 flutter attach。
在 iOS 裝置上透過 Wi-Fi 除錯
#對於 iOS 目標,請完成以下步驟:
按照 iOS 設定指南中的說明,驗證您的裝置是否已透過 Wi-Fi 連線到 Xcode。
在您的 macOS 開發機器上,開啟 **Xcode** > **Product** > **Scheme** > **Edit Scheme...**(編輯方案...)。
您也可以按下 Cmd + <。
點選 **Run**(執行)。
點選 **Arguments**(引數)。
在 **Arguments Passed On Launch**(啟動時傳遞的引數)中,點選 **+**。
如果您的開發機器使用 IPv4,請新增
--vm-service-host=0.0.0.0。如果您的開發機器使用 IPv6,請新增
--vm-service-host=::0。

要確定您是否連線到 IPv6 網路
#開啟 **Settings**(設定)> **Wi-Fi**。
點選您連線的網路。
點選 **Details...**(詳細資訊...)。
點選 **TCP/IP**。
檢視 **IPv6 address**(IPv6 地址)部分。

在 Android 裝置上透過 Wi-Fi 除錯
#按照 Android 設定指南中的說明,驗證您的裝置是否已透過 Wi-Fi 連線到 Android Studio。