【问题标题】:Flutter iOS build fails randomlyFlutter iOS 构建随机失败
【发布时间】:2020-08-25 09:38:51
【问题描述】:

我的 Flutter 项目的 ios 构建经常遇到间歇性构建失败。安卓运行良好。每隔几天就会发生这种情况,然后我会删除我的Pods 文件夹和Podfile.lock 文件pod cache clean --all,然后运行pod install,然后错误就神奇地消失了。但是,这一次似乎没有任何效果,并且我不断收到错误消息。

我完全被困住了,非常感谢我的开发人员提供的任何帮助。这是我尝试在 iOS 模拟器上运行时得到的日志(奇怪的是每次构建的错误总是不同的):

5 月 14 日更新:

所以在做了很多事情之后,我现在又遇到了另一个错误。我做了一个flutter run --verbose,在日志中我注意到了这一点:

The path does not exist
Command PhaseScriptExecution failed with a nonzero exit code

经过更多挖掘后,我意识到它来自xcode_backend.sh(在Flutter/packages/flutter_tools/bin/directory 中)。这是因为属性 FLUTTER_APPLICATION_PATH 没有定义。

我在 ios/Flutter/Generated.xcconfig 中看到了这个属性,所以我不知道应该在哪里定义它。有什么想法吗?

【问题讨论】:

  • 不用担心没有lib/main.dart 文件错误。我有一个名为 lib/main_dev.dart 的文件,我指定了它,就像我说的那样,它通常可以工作。
  • 这样的错误很难重现。您的驱动器是否具有云同步服务,例如 Google Drive 或 One Drive 之类的?由于它适用于 main_dev.dart,因此我认为问题不在于没有文件 'main.dart',并且由于它只是间歇性发生,因此必须存在一些编译时问题(或缓存)。

标签: ios xcode flutter


【解决方案1】:

该错误似乎与flutterToast有关。您是否尝试过从您的 pubsec.yaml 和您的代码中删除它,看看它是否能缓解您看到的问题。当遇到类似的 iOS/pod 问题时,我通常会做的另一件事是,我从 iOS 文件夹中的终端运行 pod install,然后尝试从 Xcode 构建。大多数情况下,错误消息更具描述性。祝你好运!

【讨论】:

    【解决方案2】:

    貌似是flutter 1.17的问题。 希望能在下一次依赖更新中解决问题。

    你的问题也一样。 https://github.com/FirebaseExtended/flutterfire/issues/2530

    【讨论】:

      【解决方案3】:

      从日志中我看到它看起来像是您使用的库之一,使用了已弃用或/和未使用的语言或本机库 API。我会尝试从您的 yaml 文件中删除 ^ 符号并降级到最新的稳定版本或更新到最新的库 - 它可能会帮助您获得警告。主要错误是关于缺少main 方法的错误。因此构建失败。构建不会因警告而失败,而只会因错误而失败。 Ctrl-F 在您的日志中发现的唯一错误 - 错误:读取“lib/main.dart”时出错:没有这样的文件或目录 包:myProject/main.dart:错误:未找到“主”方法。

      我知道你说你提供了其他文件,但颤振插件可能不像你想象的那么稳定,所以它可能会混淆它。尝试在那里添加带有main 方法的main.dart。

      希望对你有帮助。

      【讨论】:

      • 所以我只尝试了main.dart 文件,现在我得到了这个错误:=== BUILD TARGET Runner OF PROJECT Runner WITH > CONFIGURATION Release === > 路径不存在 > 命令 /bin /sh 失败,退出代码 255