从Flutter启动Swift页面遇Xcode未定义符号错误求助
Flutter调用集成FirebaseAnalytics的Swift页面时出现未定义符号错误的解决办法
问题场景
尝试从Flutter项目中打开集成了FirebaseAnalytics的Swift页面时,编译报错,具体错误信息如下:
Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC0D16DecodingStrategyO6base64yA2EmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC19KeyDecodingStrategyO14useDefaultKeysyA2EmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC19keyDecodingStrategyAC03KeygH0OvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC20DateDecodingStrategyO6customyAE10Foundation0F0Vs0E0_pKccAEmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC20dataDecodingStrategyAC0dgH0OvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC20dateDecodingStrategyAC04DategH0OvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC23passthroughTypeResolverAA026StructureCodingPassthroughgH0_pXpvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC34NonConformingFloatDecodingStrategyO5throwyA2EmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC34nonConformingFloatDecodingStrategyAC03NonghiJ0OvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC6decode_4fromxxm_yptKSeRzlFTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataDecoderC8userInfoSDys010CodingUserG3KeyVypGvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataEncoderC0D16EncodingStrategyO6base64yA2EmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataEncoderC19KeyEncodingStrategyO14useDefaultKeysyA2EmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataEncoderC19keyEncodingStrategyAC03KeygH0OvsTj Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataEncoderC20DateEncodingStrategyO6customyAEy10Foundation0F0V_s0E0_ptKccAEmFWC Error (Xcode): Undefined symbol: _$s19FirebaseSharedSwift0A11DataEncoderC20dataEncodingStrategyAC0dgH0OvsTj
解决步骤
- 统一Firebase依赖版本:确保Flutter端
pubspec.yaml中的firebase_core、firebase_analytics版本,与iOS端Podfile里Firebase/Analytics、Firebase/Core等依赖的版本完全一致,版本不兼容是这类错误的主要诱因。 - 重新安装iOS依赖:
- 进入项目iOS目录:
cd ios - 删除旧依赖文件:
rm -rf Podfile.lock Pods - 清理Pod集成残留:
pod deintegrate - 更新仓库并重新安装:
pod install --repo-update
- 进入项目iOS目录:
- 调整Swift编译配置:
- 用Xcode打开iOS项目,进入Target的Build Settings页面
- 将
Build Libraries for Distribution设置为Yes - 确认
Swift Language Version为Firebase支持的稳定版本(建议选最新兼容版)
- 清理编译缓存并重新构建:
- 在Xcode中执行
Product > Clean Build Folder - 重启Xcode和Flutter项目
- 重新运行项目:
flutter run
- 在Xcode中执行
- 检查Firebase初始化代码:确保iOS端的
AppDelegate.swift或Runner.swift中正确初始化Firebase,示例代码:import Firebase func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() return true }
内容的提问来源于stack exchange,提问作者rai
相关产品推荐
相关产品推荐

