Flutter ios release build 找不到快照

Posted

技术标签:

【中文标题】Flutter ios release build 找不到快照【英文标题】:Flutter ios release build cannot find snapshot 【发布时间】:2020-03-28 22:49:49 【问题描述】:

在尝试构建 Flutter ios 应用程序以进行发布时,我每次都会收到此错误

Failed to find snapshot: /var/containers/Bundle/Application/19D78607-A03B/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin

我已经尝试了这些方法来纠正它,但失败了

    运行 flutter clean 然后 flutter run --release 将颤振通道更改为 beta 和 master 删除构建文件夹,然后flutter clean和flutter run --release flutter clean > flutter build ios > 在 Xcode 中存档以在试飞中进行测试

有人知道怎么解决吗?

【问题讨论】:

【参考方案1】:

在过去的几天里,我经常看到这个问题。我重新创建了我的 ios 目录,暂时解决了这个问题,但它又回来了。

我了解到,kernel_blob.bin 预计不会出现在发布版本中,因为该文件包含您的 Dart 源代码,为 JIT 准备的字节码形式,但发布版本不使用 JIT,它们使用 AOT 和您的Dart 文件被编译成二进制文件,放在 App.framework 下。相反,发生此错误是因为应用程序的发布版本错误地合并了 Flutter 引擎的调试(即 JIT)版本。

到目前为止,我发现的最佳解决方案是将 build 文件夹移至回收站(flutter clean 无法正常工作,并且由于某种原因在删除 build 文件夹时无限期挂起),运行 flutter clean,运行 flutter build ios --首先从命令行发布,然后(在我的情况下)在 Xcode 中创建存档。

运行颤振医生-v

【讨论】:

只是从这里复制粘贴的答案github.com/flutter/flutter/issues/33292 没有帮助【参考方案2】:

我已经解决了这个问题,如果有人发生了,你可以试试这个。

移除 Flutter.framework,重新构建。确保 Flutter.framework 和 App.framework 是相同的调试或发布模式。

【讨论】:

【参考方案3】:

从终端运行以下命令,这会删除“ios/Flutter/App.framework”及其下面的所有内容:

rm -rf ios/Flutter/App.framework

然后从 xCode 重建您的应用程序。这为我解决了这个问题。

【讨论】:

运行此 Xcode 后显示新错误“ld: framework not found App”

以上是关于Flutter ios release build 找不到快照的主要内容,如果未能解决你的问题,请参考以下文章

Flutter run --no-build无法与--release一起使用

Flutter:build/app/outputs下的apk/release目录和flutter-apk目录有啥区别?

Flutter 在执行 Flutter build ios 后卡在 Building Dart 代码上

为啥flutter build ios --obfuscate --split-debug-info= 失败并出现警告,但flutter build ios 有效?

存档成功,但导出失败:cordova build ios --release

ionic build ios --release build 失败导致错误代码 65