You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Xcode至14.3后Flutter运行出现Thread 1: EXC_BAD_ACCESS错误

Xcode 14.3升级后SharedPreferencesPlugin崩溃问题解决

问题描述

将Xcode从13.4.1升级到14.3后,运行Flutter应用时,在SharedPreferencesPlugin的registrar.messenger()调用处触发以下异常:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)
使用的插件版本为:

shared_preferences: ^2.0.12

问题原因

Xcode 14.3对Objective-C的API调用规则做了调整,旧版本的shared_preferences插件使用的点语法调用registrar.messenger()在新环境下会导致空指针访问,触发崩溃。

修复方案

方案一:升级插件版本(推荐)

  1. 修改pubspec.yaml中的依赖,将shared_preferences版本更新到2.2.0及以上:
    shared_preferences: ^2.2.2
    
  2. 执行命令更新依赖:
    flutter pub get
    

方案二:清理重建项目

完成版本升级后,执行以下步骤确保缓存清理干净:

  • 清理Flutter项目缓存:
    flutter clean
    
  • 进入iOS目录更新Pods:
    cd ios
    pod install --repo-update
    cd ..
    
  • 重新运行项目:
    flutter run
    

方案三:临时修改原生代码(不推荐)

如果暂时无法升级插件,可以手动修改iOS原生代码应急(注意:每次执行pod install后需要重新修改):
找到Pods/Target Support Files/shared_preferences/shared_preferences-dummy.m文件,将registrar.messenger()替换为Objective-C消息发送语法[registrar messenger]。

验证

重新运行应用后,检查是否仍出现EXC_BAD_ACCESS异常,同时测试SharedPreferences的读写功能是否正常。

内容的提问来源于stack exchange,提问作者Pedro Rodrigues Dantas Neto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:43:18