Flutter 应用在真机上调试的流程
在真机上调试 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地址>。
-
调试应用:
- 使用
flutter devices确认设备连接。 - 运行
flutter run启动应用。
- 使用
iOS
-
准备工作:
- 确保设备与 Xcode 配对。
- 在 Xcode 中启用无线调试(Window > Devices and Simulators)。
-
无线连接:
- 使用 USB 连接设备并在 Xcode 中勾选
Connect via network。 - 断开 USB 连接。
- 使用 USB 连接设备并在 Xcode 中勾选
-
调试应用:
- 在终端中使用
flutter devices确认设备连接。 - 运行
flutter run启动应用。
- 在终端中使用
注意事项
- 网络质量:无线调试对网络要求较高,确保 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 文件:
- 配置 iOS 开发环境:打开 ios/Runner.xcworkspace 文件,确保 Xcode 已正确配置开发者证书和相关设置。
- 运行打包命令:在项目根目录下运行命令
flutter build ipa --release,生成的.ipa文件会存放在build/ios/ipa目录下。 - 调试模式打包:您也可以使用 flutter build ipa --debug 生成调试版的 .ipa 文件。
-
TestFlight:
- 在 App Store Connect 中设置 TestFlight 测试。
- 添加测试人员的 Apple ID,邀请他们参加测试。
- 测试人员会通过 TestFlight 应用安装和测试。
其他工具
-
Firebase App Distribution:
- 适用于 Android 和 iOS,可以轻松分发测试版应用。
- 上传应用到 Firebase,邀请测试人员下载和安装。
-
第三方分发平台:
- 如 Diawi、HockeyApp,用于分发测试版应用。
相关文章:
Flutter 应用在真机上调试的流程
在真机上调试 Flutter 应用的方法有很多,可以使用 USB 数据线连接设备到电脑进行调试,也可以通过无线方式进行 Flutter 真机调试。 1. 有线调试 设备准备 启用开发者模式: Android:进入 设置 > 关于手机,连续点击…...
以太坊基础知识结构详解
以太坊的历史和发展 初创阶段 2013年:Vitalik Buterin 发表了以太坊白皮书,提出了一个通用的区块链平台,不仅支持比特币的货币功能,还能支持更复杂的智能合约。2014年:以太坊项目启动,进行了首次ICO&…...
安全见闻(完整版)
目录 安全见闻1 编程语言和程序 编程语言 函数式编程语言: 数据科学和机器学习领域: Web 全栈开发: 移动开发: 嵌入式系统开发: 其他: 编程语言的方向: 软件程序 操作系统 硬件设备…...
LeetCode100之反转链表(206)--Java
1.问题描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 示例1 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例2 输入:head [1,2] 输出:[2,1] 示例3 输入:head [] 输…...
牛客周赛第一题2024/11/17日
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C/Rust/Pascal 1秒,其他语言2秒 空间限制:C/C/Rust/Pascal 256 M,其他语言512 M 64bit IO Format: %lld 题目描述 小红这天来到了三…...
麒麟Server下安装东方通TongLINK/Q
环境 系统:麒麟Server SP3 2403 应用:TLQ8.1(Install_TLQ_Standard_Linux2.6.32_x86_64_8.1.17.0.tar.gz) 安装Server 将文件解压到/usr/local/tlq。 cd /opt/tlq/ mkdir /usr/local/tlq/ tar -zxvf Install_TLQ_Standard_Linux2.6.32_x86_64_8.1.1…...
BERT的中文问答系统33
我们在现有的代码基础上增加网络搜索的功能。我们使用 requests 和 BeautifulSoup 来从百度搜索结果中提取信息。以下是完整的代码,包括项目结构、README.md 文件以及所有必要的代码。 项目结构 xihe241117/ ├── data/ │ └── train_data.jsonl ├── lo…...
Ubuntu下的Eigen库的安装及基本使用教程
一、Eigen库介绍 简介 Eigen [1]目前最新的版本是3.4,除了C标准库以外,不需要任何其他的依赖包。Eigen使用的CMake建立配置文件和单元测试,并自动安装。如果使用Eigen库,只需包特定模块的的头文件即可。 基本功能 Eigen适用范…...
【spring 】Spring Cloud Gateway 的Filter学习
介绍和使用场景 Spring Cloud Gateway 是一个基于 Spring Framework 5 和 Project Reactor 的 API 网关,它旨在为微服务架构提供一种简单而有效的方式来处理请求路由、过滤、限流等功能。在 Spring Cloud Gateway 中,Filter 扮演着非常重要的角色&#…...
每秒交易数(Transactions Per Second:TPS)详细拆解
每秒交易数(TPS)是指计算机网络每秒可以处理的交易数量。TPS是衡量不同区块链和其他计算机系统速度的关键指标。然而,TPS并不是用来衡量区块链速度的唯一指标。许多人认为,虽然TPS很重要,但最终性实际上是一个更重要的…...
【初阶数据结构与算法】链表刷题之链表分割、相交链表、环形链表1、环形链表I、环形链表II
文章目录 一、链表分割二、相交链表三、环形链表I四、环形链表|| 一、链表分割 题目链接:https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70 我们来看看链表分割的题目描述和它给出的函数: 这个题虽然是以C形式来做࿰…...
【STL】set,multiset,map,multimap的介绍以及使用
关联式容器 在C的STL中包含序列式容器和关联式容器 1.关联式容器:它里面存储的是元素本身,其底层是线性序列的数据结构,比如:vector,list,deque,forward_list(C11)等 2.关联式容器里面储存的…...
新能源二手车交易量有望破百万,二手车市场回暖了吗?
这些年,伴随着新能源汽车市场的高速发展,各种新能源车的二手车也在逐渐增加,不过之前的二手车市场相对比较冷清,就在最近一则新闻传出新能源二手车交易量有望破百万,二手车市场这是回暖了吗? 一、新能源二手…...
哈佛商业评论 | 项目经济的到来:组织变革与管理革新的关键
在21世纪,项目经济(Project Economy)逐步取代传统运营,成为全球经济增长的核心动力。项目已不再是辅助工具,而是推动创新和变革的重要载体。然而,只有35%的项目能够成功,显示出项目管理领域存在巨大的改进空间。本文将详细探讨项目经济的背景、项目管理的挑战,以及适应…...
web浏览器环境下使用window.open()打开PDF文件不是预览,而是下载文件?
如果你使用 window.open() 方法打开 PDF 文件,但浏览器不是预览而是下载文件,这可能是由于以下几个原因: 服务器配置:服务器可能将 PDF 文件配置为下载而不是预览。例如,服务器可能设置了 Content-Disposition 响应头…...
【GeekBand】C++设计模式笔记12_Singleton_单件模式
1. “对象性能” 模式 面向对象很好地解决了 “抽象” 的问题, 但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。典型模式 SingletonFlyweight 2. Si…...
Pyhon基础数据结构(列表)【蓝桥杯】
a [1,2,3,4,5] a.reverse() print("a ",a) a.reverse() print("a ",a)# 列表 列表(list)有由一系列按照特定顺序排序的元素组成 列表是有顺序的,访问任何元素需要通过“下标访问” 所谓“下标”就是指元素在列表从左…...
Linux篇(权限管理命令)
目录 一、权限概述 1. 什么是权限 2. 为什么要设置权限 3. Linux中的权限类别 4. Linux中文件所有者 4.1. 所有者分类 4.2. 所有者的表示方法 属主权限 属组权限 其他权限 root用户(超级管理员) 二、普通权限管理 1. ls查看文件权限 2. 文件…...
深入理解 Spark 中的 Shuffle
Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…...
leetcode-8-字符串转整数
题解: 代码:...
PHPMailer OAuth2认证终极指南:安全挑战与架构实践深度解析
PHPMailer OAuth2认证终极指南:安全挑战与架构实践深度解析 【免费下载链接】PHPMailer The classic email sending library for PHP 项目地址: https://gitcode.com/GitHub_Trending/ph/PHPMailer PHPMailer作为PHP领域最经典的邮件发送库,其OAu…...
大模型进阶必看:Agent Skills如何让AI开发更标准化、可复用?速收藏!
随着AI应用开发成熟,工具调用经历了Function Calling、MCP协议到Agent Skills三个阶段。Agent Skills通过文件系统原生设计,将指令、工作流和资源打包成可复用模块,革新上下文管理,实现代码即工具,摆脱供应商锁定。它使…...
2026Agent元年!手把手教你从0到1搭建高能智能体,小白也能秒变大神!
逼自己练完这些,你的Agent搭建就很牛了!!2026年可谓是Agent元年,智能体(AI Agent)正以惊人的速度重塑我们的工作方式,从简单的被动响应工具,进化为能自主规划、执行、协作的"数…...
银河麒麟V4.0.2-sp4服务器到手后,这三步网络配置(IP/DNS/源)一个都不能少
银河麒麟V4.0.2-sp4服务器网络配置实战指南:从零搭建稳定运行环境 刚拿到一台预装银河麒麟V4.0.2-sp4操作系统的服务器时,许多运维工程师常会陷入"有设备却用不起来"的困境——无法远程连接、软件包安装失败、系统更新卡壳,这些问题…...
NTP配置避坑指南:华三/华为/思科设备时间同步差异对比
NTP配置避坑指南:华三/华为/思科设备时间同步差异对比 在网络运维中,时间同步是确保日志分析、安全审计和故障排查准确性的基础。不同厂商的设备在NTP配置上存在细微但关键的差异,这些差异往往成为混合环境部署中的"暗坑"。本文将深…...
3个核心价值:bilibili-api的API开发与数据接口应用
3个核心价值:bilibili-api的API开发与数据接口应用 【免费下载链接】bilibili-api B站API收集整理及开发,不再维护 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-api 作为开发者,我们经常需要获取B站丰富的视频、用户及互动…...
OpenClaw文件处理自动化:nanobot轻量模型实战案例
OpenClaw文件处理自动化:nanobot轻量模型实战案例 1. 为什么选择nanobot处理文件自动化 作为一个长期被各种文件整理工作困扰的技术写作者,我一直在寻找一个既轻量又智能的自动化解决方案。直到遇到OpenClaw框架下的nanobot镜像,这个内置Qw…...
深入理解Matplotlib中的plt、fig、axes与axis:从基础到高级应用
1. Matplotlib绘图基础:从plt到figure的认知跃迁 第一次接触Matplotlib时,最让人困惑的就是plt.plot()和ax.plot()到底有什么区别。这就像学做菜时,有人告诉你"用锅炒菜"和"先用电磁炉加热再放锅炒菜"两种方式都能做出青…...
重构直播互动体验:BLiveChat的跨平台弹幕解决方案
重构直播互动体验:BLiveChat的跨平台弹幕解决方案 【免费下载链接】blivechat 用于OBS的仿YouTube风格的bilibili直播评论栏 项目地址: https://gitcode.com/gh_mirrors/bl/blivechat BLiveChat作为一款开源的B站直播弹幕工具,通过仿YouTube风格的…...
ESP32嵌入式系统设计与实现指南
1. 项目概述1.1 系统架构本项目基于ESP32主控芯片设计,采用模块化架构实现多功能嵌入式系统。系统包含以下核心模块:主控单元:ESP32-WROOM-32D模组电源管理:TPS63020升降压转换器传感器接口:I2C/SPI多协议兼容设计人机…...
