Flutter 2.5升级后iOS模拟器运行报错Undefined symbol: _OBJC_CLASS_$_EAAccessory
问题原因
_OBJC_CLASS_$_EAAccessory 是iOS系统 ExternalAccessory.framework 中的类,该报错出现的核心原因是 Flutter 2.5 版本修改了iOS端默认编译规则,导致项目仅对真机架构自动链接了该系统框架,未对模拟器架构生效。
解决步骤
- 打开iOS项目下的
Runner.xcworkspace,选中左侧导航栏的Runner根项目,进入 Build Phases 标签页 - 找到 Link Binary With Libraries 配置项,点击底部加号搜索并添加
ExternalAccessory.framework,将该框架的Status设置为 Optional,避免低版本iOS系统出现兼容问题 - 切换到 Build Settings 标签页,找到 Excluded Architectures 配置,确认Debug模式下的模拟器配置没有排除arm64架构(Flutter 2.5开始支持arm64架构的iOS模拟器,旧项目手动排除arm64会触发系统框架链接异常)
- 回到Flutter项目根目录,依次执行以下命令清理缓存重新构建:
flutter clean rm -rf ios/Pods ios/Podfile.lock flutter pub get cd ios && pod install
- 重启iOS模拟器后重新运行项目即可,该操作不会影响原有真机运行的兼容性
内容的提问来源于stack exchange,提问作者Amani Elsaed
相关产品推荐
相关产品推荐

