升级Xcode至14.X后编译报错Undefined symbol: _OBJC_CLASS_$_FlurryMessaging怎么办?
解决Xcode 14.X编译时FlurryMessaging未定义符号问题
以下是针对性的排查和解决步骤:
检查Flurry SDK版本兼容性
确认当前使用的Flurry SDK版本是否适配Xcode 14.X。如果是旧版本,直接更新到最新稳定版:- CocoaPods集成:修改Podfile中对应依赖(如
pod 'FlurryMessaging'),执行命令pod update FlurryMessaging完成更新 - 手动集成:下载最新SDK包,替换项目内旧的Flurry框架文件,重新添加相关依赖
- CocoaPods集成:修改Podfile中对应依赖(如
验证项目依赖配置
- 进入项目的
Build Phases -> Link Binary With Libraries,确认已添加FlurryMessaging.framework(或包含该类的Flurry主SDK框架),未被误删 - 检查
Build Settings -> Other Linker Flags,确保包含-ObjC标识,Flurry SDK需要该参数正确加载类 - 确认
Build Settings -> Framework Search Paths包含Flurry框架的存放路径,保证编译器能找到对应文件
- 进入项目的
清理缓存后重新编译
- 使用快捷键
Cmd+Shift+K执行Clean Build Folder - 删除Derived Data:打开Xcode设置(Cmd+,)→ Locations → 点击Derived Data的路径打开文件夹,删除全部内容
- 重启Xcode后重新编译项目
- 使用快捷键
检查架构适配
Xcode 14默认不再支持32位架构,需确认Flurry SDK包含所需架构:- 终端执行命令
lipo -info /path/to/FlurryMessaging.framework/FlurryMessaging查看支持的架构,需包含arm64(真机)、x86_64(模拟器) - 若SDK缺少必要架构,优先更新SDK;也可在
Build Settings -> Excluded Architectures中针对性配置(如模拟器排除arm64,真机排除x86_64)
- 终端执行命令
内容的提问来源于stack exchange,提问作者Chris Hansen
相关产品推荐
相关产品推荐

