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 有效?