Flutter Run 不工作,在 iPhone 上启动应用程序时出错
Posted
技术标签:
【中文标题】Flutter Run 不工作,在 iPhone 上启动应用程序时出错【英文标题】:Flutter Run not working, Error launching application on iPhone 【发布时间】:2021-03-13 07:38:48 【问题描述】:我最近更新了flutter版本。在那之后,颤动运行无法在 iPhone 上运行。我正在使用安卓工作室。 android studio 上的运行按钮也不适用于 iPhone,但模拟器运行良好。
我收到以下错误。我已将跑步者模式设置为发布。还是没有运气。
“在 Raj iPhone 上启动应用程序时出错。”
Flutter 版本。
Flutter(频道主控,1.24.0-8.0.pre.374,Mac OS X 10.15.7 19H2 darwin-x64,语言环境 en-GB)
我没有收到任何其他错误。所以我运行 flutter run -verbose 我得到了以下信息
#0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:618:7) #2 FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1119:12) #3 FlutterCommand.run。 (包:flutter_tools/src/runner/flutter_command.dart:974:27) #4 AppContext.run。 (包:flutter_tools/src/base/context.dart:150:19) #5 AppContext.run (package:flutter_tools/src/base/context.dart:149:12) #6 CommandRunner.runCommand (package:args/command_runner.dart:197:13) #7 FlutterCommandRunner.runCommand。 (包:flutter_tools/src/runner/flutter_command_runner.dart:264:9) #8 AppContext.run。 (包:flutter_tools/src/base/context.dart:150:19) #9 AppContext.run (package:flutter_tools/src/base/context.dart:149:12) #10 FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:220:5) #11 运行.. (package:flutter_tools/runner.dart:63:9) #12运行。 (包:flutter_tools/runner.dart:61:12) #13 应用上下文运行。 (包:flutter_tools/src/base/context.dart:150:19) #14 AppContext.run (package:flutter_tools/src/base/context.dart:149:12) #15 runInContext(包:flutter_tools/src/context_runner.dart:70:10) #16 主要(包:flutter_tools/executable.dart:90:3)
[ +113 ms] (lldb) process detach [ +254 ms] ensureAnalyticsSent: 255ms [ +1 ms] Running shutdown hooks [
] 关闭挂钩优先级 4 [ +52 毫秒] 关闭挂钩完成 [ ] 以代码 1 退出
我已经完成了flutter clean并再次检查。还是同样的问题。
谢谢
【问题讨论】:
你有没有通过xcode打开项目并注册你的iphone?尝试至少一次直接从 xcode 编译到 iphone。 直到我升级颤振。它工作正常。我的 iphone id 已添加到开发人员资料中。这不是我第一次运行这个项目。我为此工作了一个月。升级后它停止工作 现在,我尝试从 xcode 工作区运行。它运行良好。唯一的问题是在设备上运行颤振失败:( 【参考方案1】:在flutter/packages/flutter_tools/lib/src/ios/devices.dart
中,找到如下代码块:
_logger.printTrace('Application launched on the device. Waiting for observatory port.');
Uri localUri;
try
localUri = await observatoryDiscovery.uri.timeout(const Duration(seconds: 30));
on TimeoutException
await observatoryDiscovery.cancel();
将超时时间增加到更大的数字,例如 60 秒为我修复:
localUri = await observatoryDiscovery.uri.timeout(const Duration(seconds: 60));
另外,删除缓存的二进制文件以强制重新生成快照:
rm /$PATH_TO_FLUTTER_DIRECTORY/bin/cache/flutter_tools.stamp /$PATH_TO_FLUTTER_DIRECTORY/bin/cache/flutter_tools.snapshot
参考资料:
https://github.com/flutter/flutter/issues/72161
https://github.com/flutter/flutter/blob/a603714610f8c9c831e7d85071274460d70c18da/packages/flutter_tools/lib/src/ios/devices.dart#L432
https://github.com/flutter/flutter/tree/master/packages/flutter_tools#forcing-snapshot-regeneration
【讨论】:
除此之外,您还需要强制重新生成flutter_tools
的快照,否则您对 dart 代码所做的更改将不会应用。为此,您可以运行rm /$PATH_TO_FLUTTER_DIRECTORY/bin/cache/flutter_tools.stamp /$PATH_TO_FLUTTER_DIRECTORY/bin/cache/flutter_tools.snapshot
。来源:github.com/flutter/flutter/tree/master/packages/…
感谢@brianbhsu - 我在答案中添加了您的有用评论。以上是关于Flutter Run 不工作,在 iPhone 上启动应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章
解决flutter环境配置问题引起的执行flutter run卡住不动
Flutter 应用程序停留在物理 iPhone 的安装和启动步骤