Xcode14编译报错:Undefined symbol: _OBJC_CLASS_$_ADBMobile
解决Xcode14构建AdobeMobileSDK时
Undefined symbol: _OBJC_CLASS_$_ADBMobile错误 以下是针对该问题的具体排查和解决步骤:
升级AdobeMobileSDK到适配Xcode14的版本
Xcode14对构建系统、符号链接逻辑做了调整,旧版本的AdobeMobileSDK可能未适配这些变化。如果使用CocoaPods管理依赖,修改Podfile中的SDK版本为最新稳定版,执行pod update AdobeMobileSDK;如果是手动导入.framework文件,替换为支持Xcode14的SDK版本。调整架构相关构建设置
- 打开项目的
Build Settings,找到Architectures选项,确保设置为Standard Architectures (arm64, x86_64)(iOS项目),避免自定义架构导致不兼容。 - 检查
Excluded Architectures,确认模拟器配置中没有误排除arm64(Xcode14默认可能添加了该排除项,需手动删除,保证SDK的架构能被正确链接)。
- 打开项目的
验证SDK的链接配置
- 若手动导入SDK,进入
Build Phases > Link Binary With Libraries,确认AdobeMobileSDK的.framework已添加,且状态为Required。 - 如果SDK是静态库形式,在
Build Settings > Other Linker Flags中添加-ObjC或-all_load,确保链接器能正确识别SDK中的Objective-C类符号。
- 若手动导入SDK,进入
清理构建缓存
- 执行
Product > Clean Build Folder(快捷键Cmd+Shift+K)清除本地构建缓存。 - 手动删除DerivedData目录:通过Xcode的
Preferences > Locations找到DerivedData路径,删除整个文件夹后重新构建项目。
- 执行
检查代码中的导入和引用
- 确保Objective-C代码中使用正确的头文件导入路径:
#import <AdobeMobileSDK/ADBMobile.h>。 - 混编项目中,确认Swift代码能通过桥接文件正确访问
ADBMobile类,桥接文件中需包含#import <AdobeMobileSDK/ADBMobile.h>。
- 确保Objective-C代码中使用正确的头文件导入路径:
内容的提问来源于stack exchange,提问作者Jagadeeshwar
相关产品推荐
相关产品推荐

