在真机上调试 Flutter 应用的方法有很多,可以使用 USB 数据线连接设备到电脑进行调试,也可以通过无线方式进行 Flutter 真机调试。
1. 有线调试
设备准备
-
启用开发者模式:
- Android:进入
设置
>关于手机
,连续点击版本号
直到出现 “你已成为开发者”。然后在开发者选项
中启用USB 调试
。 - iOS:连接设备到电脑,信任电脑。
- Android:进入
-
连接设备:
- 使用 USB 数据线连接设备到电脑。
配置系统
-
对于 Android:
- 确保 Android 设备在设备列表中显示。可以通过运行
flutter devices
来检查。 - 如果设备没有显示,检查 USB 驱动程序是否已安装。
- 确保 Android 设备在设备列表中显示。可以通过运行
-
对于 iOS:
- 使用 Xcode 打开项目,确保设备被识别。
- 可能需要设置开发者账号并信任设备。
启动调试
-
运行应用:
- 在终端中导航到你的 Flutter 项目目录。
- 运行
flutter run
,Flutter 会自动检测连接的设备并在其上运行应用。
-
使用 IDE:
- 在 Android Studio 或 Visual Studio Code 中打开 Flutter 项目。
- 选择目标设备(连接的真机),然后点击运行按钮。
调试应用
- 热重载:在调试过程中,可以使用
r
键进行热重载,快速查看代码更改。 - 日志查看:在终端中查看应用的实时日志输出,帮助诊断问题。
- 断点调试:使用 IDE 设置断点,查看变量和应用状态。
常见问题
- 设备未识别:检查 USB 连接和驱动程序。
- 权限问题:尤其在 iOS 上,确保 Xcode 项目设置正确,包括签名和权限。
2. 无线调试
无线调试也分两种,一是当设备和电脑在同一网络下,二是当然就是当设备和电脑不在同一网络下的。
2.1 设备和电脑在同一网络下
前提条件
- 设备和电脑需要在同一网络下。
- 已通过 USB 连接设备进行过一次调试。
步骤
Android
-
启用无线调试:
- 确保设备和电脑在同一 Wi-Fi 网络中。
- 通过 USB 连接设备并运行
adb tcpip 5555
。 - 断开 USB 连接。
- 获取设备的 IP 地址(可在设备的 Wi-Fi 设置中查看)。
- 在终端中运行
adb connect <设备IP地址>
。
-
调试应用:
iOS
-
准备工作:
- 确保设备与 Xcode 配对。
- 在 Xcode 中启用无线调试(Window > Devices and Simulators)。
-
无线连接:
- 使用 USB 连接设备并在 Xcode 中勾选
Connect via network
。 - 断开 USB 连接。
- 使用 USB 连接设备并在 Xcode 中勾选
-
调试应用:
注意事项
- 网络质量:无线调试对网络要求较高,确保 Wi-Fi 连接稳定。
- 电池消耗:无线调试可能会增加设备的电池消耗。
- 防火墙设置:确保防火墙没有阻止相关端口。
2.2 设备和电脑不在同一网络下
Android
-
生成 APK 文件:
- 配置签名密钥(可选):如果您要发布应用,请先在 android/app 目录下创建 key.properties 文件,并配置签名密钥。开发环境不需要此步骤。
- 运行打包命令:
flutter build apk --release
,该命令会生成一个适合发布的.apk
文件,位于build/app/outputs/flutter-apk/app-release.apk
。 - 调试模式打包:如果只是测试,也可以运行
flutter build apk --debug
生成调试版 APK。 - 通过电子邮件、云存储(如 Google Drive)等方式发送 APK 文件给测试人员。
- 接收方需要在设备上启用“未知来源应用”安装权限。
-
使用 Google Play 内测通道:
- 在 Google Play 开发者控制台中创建内测版。
- 将测试链接分享给测试人员,他们可以通过 Play Store 安装。
iOS
需要在 macOS 系统中完成此步骤,因为 iOS 编译依赖 Xcode。
-
生成 IPA 文件:
-
TestFlight:
- 在 App Store Connect 中设置 TestFlight 测试。
- 添加测试人员的 Apple ID,邀请他们参加测试。
- 测试人员会通过 TestFlight 应用安装和测试。
其他工具
-
Firebase App Distribution:
- 适用于 Android 和 iOS,可以轻松分发测试版应用。
- 上传应用到 Firebase,邀请测试人员下载和安装。
-
第三方分发平台:
- 如 Diawi、HockeyApp,用于分发测试版应用。