因Undefined symbol: _OBJC_CLASS_$_GADRewardBasedVideoAd无法构建iOS应用如何解决
Xcode架构链接错误解决方案
报错原文:
Undefined symbols for architecture x86_64:
"OBJC_CLASS$_GADRewardBasedVideoAd", referenced from:
objc-class-ref in RootViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
该错误为Google Mobile Ads SDK的指定类在链接阶段找不到对应x86_64架构的符号导致,你已完成的两项配置是正确的基础修复项,可按以下步骤继续排查:
- 若你使用CocoaPods集成SDK,先在项目根目录执行
pod deintegrate,再执行pod install,完成后必须打开后缀为.xcworkspace的项目文件运行,不得打开原.xcodeproj文件。 - 检查Google Mobile Ads SDK版本与你当前使用的Xcode版本是否匹配,过高的SDK版本在低版本Xcode环境下会缺失旧架构支持,可回退到对应适配版本重试。
- 打开项目Build Phases面板,查看Link Binary With Libraries列表,确认
GoogleMobileAds.framework已被正确加入该列表,缺失则手动导入添加。 - 检查Build Settings中的Excluded Architectures配置,确认模拟器运行场景下未把x86_64架构加入排除列表;若你使用M系列芯片的Mac开发,可开启Rosetta运行模拟器,也可直接切换到真机运行规避模拟器架构兼容问题。
- 清理项目缓存:按下
Command + Shift + K清理常规编译产物,再按下Command + Option + Shift + K清理全部缓存,之后重新编译运行。
内容的提问来源于stack exchange,提问作者niro
相关产品推荐
相关产品推荐

