Flutter混合项目在 iOS14+启动崩溃处理方法

最近在开发flutter和iOS混合项目时,遇到真机调试连接xcode启动项目,在断开后,打开App直接崩溃,版本为iOS14+。

APP 测试结果如下:

App来源 是否闪退 模式
线上 release
fir/蒲公英 debug
xcode 是(断开xcode后再打开app) debug

原因

闪退的原因是因为 Flutter SDK, Flutter 官方对 iOS14 进行了说明:Flutter官网说明链接

大致意思就是说,如果我们在 iOS14 的真机上安装了 debug模式 编译出来的 flutter 应用,那么在断开编译安装连接后,将无法从桌面上打开该应用程序。

解决方案

网上尝试过几种方式,有的不灵

  • 项目名中文改英文

如Xcode里,选择当前项目的TARGETS->BuildSetting -> Packaging -> Product Name,将中文的命名改成英文,flutter项目建议直接改成Runner。
这种方式试过没用。

  • 更改XCode编译模式:

使用Release模式编译,这个时候Flutter编译方式为AOT,可正常启动;

  • 不更改XCode编译模式:

更改Flutter编译配置,强制设置为Release。找到Flutter安装位置,依次打开flutter/packages/flutter_tools/bin/xcode_backend.sh

这里我采用的最后一种方式,不更改XCode编译模式,试过可行,不过这会改变原来debug的build模式,不过要记得在需要的时候改回来就行。

图片.png

注:如果你当前flutter版本是Flutter 2.8.1,在xcode_backend.sh找不到如上内容,需要打开xcode_backend.dart,按如下图修改就可


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

相关阅读更多精彩内容

友情链接更多精彩内容