在iOS项目中集成Flutter,Flutter页面白屏及Could not launch engine with configuration.问题的解决

问题描述:

按照官方文档将Flutter model集成到iOS 原生项目后(使用官方推荐的cocoaPod集成方案),运行APP后flutter入口页面显示未白屏,控制台打印如下错误信息:

Failed to find assets path for "Frameworks/App.framework/flutter_assets"
[VERBOSE-2:engine.cc(197)] Engine run configuration was invalid.
[VERBOSE-2:shell.cc(580)] Could not launch engine with configuration.

注:
关于如何将Flutter model 集成到iOS 原生APP中,可以参见官方文档,按照文档描述操作即可;

集成文档:

翻译稿:
https://flutter.cn/docs/development/add-to-app/ios/project-setup

官方原稿:
https://docs.flutter.dev/development/add-to-app/ios/project-setup

解决方案:

1、添加脚本

target->Build Phases->+->New Run Script Phase->Run Script

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed ${SOURCE_ROOT}/Flutter/App.framework

如下图所示:


image.png

注意⚠️:
$FLUTTER_ROOT 是当前Flutter环境的跟路径,例如在我的电脑上,路径为:

/Users/zhangyin/macTools/flutter_2.10.5

您需要检查 $FLUTTER_ROOT 是否已经正确设置过;

target->Build Settings(若没有搜索到FLUTTER_ROOT)->+->Add User-Defined Setting
image.png
image.png

重新运行APP

首先在Xcode中clean build folder
然后在APP的项目文件夹下执行命令:pod install
然后重新启动项目就可以看到Flutter中的页面了,运行效果如下:


WeChatf697293d502950ad1851561f6d80912c.png

(底层是原生APP,弹窗来自Flutter的main页面)

鸣谢:

本文参考简友[NJ_墨]的文章编写,实测有效;
https://www.jianshu.com/p/c36b1873a043

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容