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 让 iPhone 上下颠倒

解决flutter环境配置问题引起的执行flutter run卡住不动

Flutter 应用程序停留在物理 iPhone 的安装和启动步骤

Flutter:iphone应用程序没有在模拟器中运行

将应用程序从 Android Studio 部署到 iPhone 时出现 Flutter 错误

解决Flutter升级后,flutter run 卡在gradle build running的问题