You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS端Flutter BLE应用启动失败:_OBJC_CLASS_$_FlutterError符号未找到

iOS端Flutter BLE应用启动失败:OBJC_CLASS$_FlutterError符号未找到

兄弟,太懂这种iOS/Xcode更新后项目突然崩掉的糟心了!你这个_OBJC_CLASS_$_FlutterError符号找不到的问题,大概率是更新后flutter_blue_plus插件和新环境的兼容性冲突导致的,给你几个亲测有效的排查解决方向:

先贴出你遇到的错误日志:

dyld[2179]: Symbol not found: OBJC_CLASS$_FlutterError
Referenced from: /private/var/containers/Bundle/Application/54180268-0E54-41B4-A5ED-E03F662FAE86/Runner.app/Runner
Expected in: <6DD9F429-0BD2-3581-B55F-23B9A86E1CC2> /private/var/containers/Bundle/Application/54180268-0E54-41B4-A5ED-E03F662FAE86/Runner.app/Frameworks/flutter_blue_plus.framework/flutter_blue_plus


解决方法按优先级来:

  1. 升级flutter_blue_plus到最新版本
    插件作者通常会第一时间适配新的iOS/Xcode版本,打开项目的pubspec.yaml,把flutter_blue_plus的版本号更新到最新(或者直接在终端跑flutter pub upgrade flutter_blue_plus),然后执行:

    flutter clean
    flutter pub get
    

    之后再用Xcode重新编译试试。

  2. 同步升级Flutter SDK到稳定版
    旧版Flutter SDK可能和新iOS系统不兼容,终端执行:

    flutter upgrade
    

    升级完成后重新构建项目,很多时候这种跨环境的符号问题会被解决。

  3. 彻底清理Xcode和Pods缓存
    这是解决iOS构建问题的万能第一步:

    • 打开Xcode,按Shift+Command+K清理构建文件夹;
    • 删除项目根目录下的ios/Pods文件夹和Podfile.lock文件;
    • 进入ios目录,终端执行pod install
    • 重启Xcode后重新运行项目。
  4. 检查Xcode的框架链接配置
    打开Xcode的Runner项目,进入Build Phases -> Link Binary With Libraries,确认Flutter.framework已经正确添加,且flutter_blue_plus.framework的状态正常(没有红色感叹号)。如果Flutter.framework缺失,手动从你的Flutter SDK目录(一般是flutter/bin/cache/artifacts/engine/ios)添加进去。

  5. 验证iOS部署目标版本
    确认Xcode中Runner项目的Deployment Targetflutter_blue_plus插件要求的最低iOS版本匹配(比如现在插件可能要求iOS 13及以上),如果你的项目设置的版本过低,调整到插件支持的版本再尝试构建。


备注:内容来源于stack exchange,提问作者Kyle Andrew

火山引擎 最新活动