当前位置: 首页 > news >正文

Flutter 应用在真机上调试的流程

在真机上调试 Flutter 应用的方法有很多,可以使用 USB 数据线连接设备到电脑进行调试,也可以通过无线方式进行 Flutter 真机调试。

1. 有线调试

设备准备

  1. 启用开发者模式

    • Android:进入 设置 > 关于手机,连续点击 版本号 直到出现 “你已成为开发者”。然后在 开发者选项 中启用 USB 调试
    • iOS:连接设备到电脑,信任电脑。
  2. 连接设备

    • 使用 USB 数据线连接设备到电脑。

配置系统

  1. 对于 Android

    • 确保 Android 设备在设备列表中显示。可以通过运行 flutter devices 来检查。
    • 如果设备没有显示,检查 USB 驱动程序是否已安装。
  2. 对于 iOS

    • 使用 Xcode 打开项目,确保设备被识别。
    • 可能需要设置开发者账号并信任设备。

启动调试

  1. 运行应用

    • 在终端中导航到你的 Flutter 项目目录。
    • 运行 flutter run,Flutter 会自动检测连接的设备并在其上运行应用。
  2. 使用 IDE

    • 在 Android Studio 或 Visual Studio Code 中打开 Flutter 项目。
    • 选择目标设备(连接的真机),然后点击运行按钮。

调试应用

  • 热重载:在调试过程中,可以使用 r 键进行热重载,快速查看代码更改。
  • 日志查看:在终端中查看应用的实时日志输出,帮助诊断问题。
  • 断点调试:使用 IDE 设置断点,查看变量和应用状态。

常见问题

  • 设备未识别:检查 USB 连接和驱动程序。
  • 权限问题:尤其在 iOS 上,确保 Xcode 项目设置正确,包括签名和权限。

2. 无线调试

无线调试也分两种,一是当设备和电脑在同一网络下,二是当然就是当设备和电脑不在同一网络下的。

2.1 设备和电脑在同一网络下

前提条件

  1. 设备和电脑需要在同一网络下
  2. 已通过 USB 连接设备进行过一次调试

步骤

Android
  1. 启用无线调试

    • 确保设备和电脑在同一 Wi-Fi 网络中。
    • 通过 USB 连接设备并运行 adb tcpip 5555
    • 断开 USB 连接。
    • 获取设备的 IP 地址(可在设备的 Wi-Fi 设置中查看)。
    • 在终端中运行 adb connect <设备IP地址>
  2. 调试应用

    • 使用 flutter devices 确认设备连接。
    • 运行 flutter run 启动应用。
iOS
  1. 准备工作

    • 确保设备与 Xcode 配对。
    • 在 Xcode 中启用无线调试(Window > Devices and Simulators)。
  2. 无线连接

    • 使用 USB 连接设备并在 Xcode 中勾选 Connect via network
    • 断开 USB 连接。
  3. 调试应用

    • 在终端中使用 flutter devices 确认设备连接。
    • 运行 flutter run 启动应用。

注意事项

  • 网络质量:无线调试对网络要求较高,确保 Wi-Fi 连接稳定。
  • 电池消耗:无线调试可能会增加设备的电池消耗。
  • 防火墙设置:确保防火墙没有阻止相关端口。

2.2 设备和电脑不在同一网络下

Android

  1. 生成 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 文件给测试人员。
    • 接收方需要在设备上启用“未知来源应用”安装权限。
  2. 使用 Google Play 内测通道

    • 在 Google Play 开发者控制台中创建内测版。
    • 将测试链接分享给测试人员,他们可以通过 Play Store 安装。

iOS

需要在 macOS 系统中完成此步骤,因为 iOS 编译依赖 Xcode。

  1. 生成 IPA 文件

    • 配置 iOS 开发环境:打开 ios/Runner.xcworkspace 文件,确保 Xcode 已正确配置开发者证书和相关设置。
    • 运行打包命令:在项目根目录下运行命令 flutter build ipa --release,生成的 .ipa 文件会存放在 build/ios/ipa 目录下。
    • 调试模式打包:您也可以使用 flutter build ipa --debug 生成调试版的 .ipa 文件。
  2. TestFlight

    • 在 App Store Connect 中设置 TestFlight 测试。
    • 添加测试人员的 Apple ID,邀请他们参加测试。
    • 测试人员会通过 TestFlight 应用安装和测试。

其他工具

  • Firebase App Distribution

    • 适用于 Android 和 iOS,可以轻松分发测试版应用。
    • 上传应用到 Firebase,邀请测试人员下载和安装。
  • 第三方分发平台

    • 如 Diawi、HockeyApp,用于分发测试版应用。

相关文章:

Flutter 应用在真机上调试的流程

在真机上调试 Flutter 应用的方法有很多&#xff0c;可以使用 USB 数据线连接设备到电脑进行调试&#xff0c;也可以通过无线方式进行 Flutter 真机调试。 1. 有线调试 设备准备 启用开发者模式&#xff1a; Android&#xff1a;进入 设置 > 关于手机&#xff0c;连续点击…...

以太坊基础知识结构详解

以太坊的历史和发展 初创阶段 2013年&#xff1a;Vitalik Buterin 发表了以太坊白皮书&#xff0c;提出了一个通用的区块链平台&#xff0c;不仅支持比特币的货币功能&#xff0c;还能支持更复杂的智能合约。2014年&#xff1a;以太坊项目启动&#xff0c;进行了首次ICO&…...

安全见闻(完整版)

目录 安全见闻1 编程语言和程序 编程语言 函数式编程语言&#xff1a; 数据科学和机器学习领域&#xff1a; Web 全栈开发&#xff1a; 移动开发&#xff1a; 嵌入式系统开发&#xff1a; 其他&#xff1a; 编程语言的方向&#xff1a; 软件程序 操作系统 硬件设备…...

LeetCode100之反转链表(206)--Java

1.问题描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表 示例1 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例2 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例3 输入&#xff1a;head [] 输…...

牛客周赛第一题2024/11/17日

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 时间限制&#xff1a;C/C/Rust/Pascal 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C/Rust/Pascal 256 M&#xff0c;其他语言512 M 64bit IO Format: %lld 题目描述 小红这天来到了三…...

麒麟Server下安装东方通TongLINK/Q

环境 系统&#xff1a;麒麟Server SP3 2403 应用&#xff1a;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 来从百度搜索结果中提取信息。以下是完整的代码&#xff0c;包括项目结构、README.md 文件以及所有必要的代码。 项目结构 xihe241117/ ├── data/ │ └── train_data.jsonl ├── lo…...

Ubuntu下的Eigen库的安装及基本使用教程

一、Eigen库介绍 简介 Eigen [1]目前最新的版本是3.4&#xff0c;除了C标准库以外&#xff0c;不需要任何其他的依赖包。Eigen使用的CMake建立配置文件和单元测试&#xff0c;并自动安装。如果使用Eigen库&#xff0c;只需包特定模块的的头文件即可。 基本功能 Eigen适用范…...

【spring 】Spring Cloud Gateway 的Filter学习

介绍和使用场景 Spring Cloud Gateway 是一个基于 Spring Framework 5 和 Project Reactor 的 API 网关&#xff0c;它旨在为微服务架构提供一种简单而有效的方式来处理请求路由、过滤、限流等功能。在 Spring Cloud Gateway 中&#xff0c;Filter 扮演着非常重要的角色&#…...

每秒交易数(Transactions Per Second:TPS)详细拆解

每秒交易数&#xff08;TPS&#xff09;是指计算机网络每秒可以处理的交易数量。TPS是衡量不同区块链和其他计算机系统速度的关键指标。然而&#xff0c;TPS并不是用来衡量区块链速度的唯一指标。许多人认为&#xff0c;虽然TPS很重要&#xff0c;但最终性实际上是一个更重要的…...

【初阶数据结构与算法】链表刷题之链表分割、相交链表、环形链表1、环形链表I、环形链表II

文章目录 一、链表分割二、相交链表三、环形链表I四、环形链表|| 一、链表分割 题目链接&#xff1a;https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70 我们来看看链表分割的题目描述和它给出的函数&#xff1a;    这个题虽然是以C形式来做&#xff0…...

【STL】set,multiset,map,multimap的介绍以及使用

关联式容器 在C的STL中包含序列式容器和关联式容器 1.关联式容器&#xff1a;它里面存储的是元素本身&#xff0c;其底层是线性序列的数据结构&#xff0c;比如&#xff1a;vector&#xff0c;list&#xff0c;deque&#xff0c;forward_list(C11)等 2.关联式容器里面储存的…...

新能源二手车交易量有望破百万,二手车市场回暖了吗?

这些年&#xff0c;伴随着新能源汽车市场的高速发展&#xff0c;各种新能源车的二手车也在逐渐增加&#xff0c;不过之前的二手车市场相对比较冷清&#xff0c;就在最近一则新闻传出新能源二手车交易量有望破百万&#xff0c;二手车市场这是回暖了吗&#xff1f; 一、新能源二手…...

哈佛商业评论 | 项目经济的到来:组织变革与管理革新的关键

在21世纪,项目经济(Project Economy)逐步取代传统运营,成为全球经济增长的核心动力。项目已不再是辅助工具,而是推动创新和变革的重要载体。然而,只有35%的项目能够成功,显示出项目管理领域存在巨大的改进空间。本文将详细探讨项目经济的背景、项目管理的挑战,以及适应…...

web浏览器环境下使用window.open()打开PDF文件不是预览,而是下载文件?

如果你使用 window.open() 方法打开 PDF 文件&#xff0c;但浏览器不是预览而是下载文件&#xff0c;这可能是由于以下几个原因&#xff1a; 服务器配置&#xff1a;服务器可能将 PDF 文件配置为下载而不是预览。例如&#xff0c;服务器可能设置了 Content-Disposition 响应头…...

【GeekBand】C++设计模式笔记12_Singleton_单件模式

1. “对象性能” 模式 面向对象很好地解决了 “抽象” 的问题&#xff0c; 但是必不可免地要付出一定的代价。对于通常情况来讲&#xff0c;面向对象的成本大都可以忽略不计。但是某些情况&#xff0c;面向对象所带来的成本必须谨慎处理。典型模式 SingletonFlyweight 2. Si…...

Pyhon基础数据结构(列表)【蓝桥杯】

a [1,2,3,4,5] a.reverse() print("a ",a) a.reverse() print("a ",a)# 列表 列表&#xff08;list&#xff09;有由一系列按照特定顺序排序的元素组成 列表是有顺序的&#xff0c;访问任何元素需要通过“下标访问” 所谓“下标”就是指元素在列表从左…...

Linux篇(权限管理命令)

目录 一、权限概述 1. 什么是权限 2. 为什么要设置权限 3. Linux中的权限类别 4. Linux中文件所有者 4.1. 所有者分类 4.2. 所有者的表示方法 属主权限 属组权限 其他权限 root用户&#xff08;超级管理员&#xff09; 二、普通权限管理 1. ls查看文件权限 2. 文件…...

深入理解 Spark 中的 Shuffle

Spark 的介绍与搭建&#xff1a;从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交&#xff1a;本地与集群模式全解析-CSDN博客 Spark on YARN&#xff1a;Spark集群模式…...

leetcode-8-字符串转整数

题解: 代码:...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...