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

Flutter iOS应用Xcode编译报错:Undefined symbol: _OBJC_CLASS_$_FIRHeartbeatInfo

解决Xcode编译Flutter iOS应用时的Undefined symbol: OBJC_CLASS$_FIRHeartbeatInfo错误

问题原因

你手动指定了FirebaseFirestore的8.15.0版本,但项目依赖的firebase_core: ^2.8.0对应更高版本的iOS Firebase SDK,两者依赖的Firebase Core版本不兼容,导致编译链接时找不到FIRHeartbeatInfo类(该类属于较新版本的Firebase Core)。

解决步骤

1. 修正Podfile配置

删除Podfile中手动添加的FirebaseFirestore指定行,让Flutter的Firebase插件自动管理依赖版本,避免版本冲突。修改后的Podfile如下:

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

2. 清理并重新安装依赖

在项目根目录依次执行以下命令:

# 清理Flutter缓存
flutter clean

# 进入iOS目录
cd ios

# 删除旧的pod依赖文件
rm -rf Podfile.lock Pods

# 更新pod仓库(可选,确保获取最新版本)
pod repo update

# 重新安装pod依赖
pod install

3. 验证Xcode项目设置

打开iOS目录下的Runner.xcworkspace,检查两项设置:

  • 确认Build Phases > Link Binary With Libraries中包含FirebaseCore.framework(正常情况下pod install会自动添加,若缺失可手动添加)
  • 检查Build Settings > Other Linker Flags是否包含-ObjC(Flutter项目默认配置,若缺失需手动添加)

4. (可选)更新Firebase依赖到兼容版本

如果上述步骤无效,可尝试将所有Firebase插件更新到最新兼容版本,修改pubspec.yaml:

firebase_messaging: ^14.6.7 # 或最新兼容版本
firebase_core: ^2.15.0 # 或最新兼容版本
firebase_core_web: ^2.8.1 # 或最新兼容版本

执行flutter pub get后,重复步骤2的pod安装操作。

内容的提问来源于stack exchange,提问作者Anandh Krishnan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:47:26