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

如何调试Google-Mobile-Ads-SDK依赖?排查未定义架构错误

调试Google Mobile Ads SDK的Undefined Architecture错误:确定依赖框架的方法

我之前也碰到过类似的架构不匹配问题,给你几个实用的调试步骤,帮你定位需要的依赖框架:

  • 先查官方集成文档的依赖清单
    虽然示例应用看起来没手动链接额外库,但官方文档里肯定有明确的依赖要求。比如iOS平台,Google Mobile Ads SDK通常依赖这些系统框架:Foundation、CoreGraphics、UIKit(基础必备),如果用到广告追踪、归因功能,还需要AdSupport、AppTrackingTransparency、StoreKit;Android平台则会依赖com.android.support:appcompat-v7这类基础库。建议直接翻SDK的官方集成指南,找「依赖项」或「系统框架要求」的章节,这是最直接的方式。

  • 用工具分析SDK二进制的架构支持
    出现undefined architecture错误,大概率是你的项目架构和SDK支持的架构不匹配。可以用终端命令查看SDK的架构:

    # 针对iOS的framework,进入framework目录执行
    lipo -info GoogleMobileAds.framework/GoogleMobileAds
    

    这个命令会输出SDK支持的架构(比如arm64、x86_64、armv7等),对比你项目的Build Settings里的Architectures和Valid Architectures配置,确保两者有交集。如果项目启用了Excluded Architectures,也要检查是不是把SDK支持的架构排除了。

  • 从编译报错的符号定位依赖
    仔细看编译报错里的「undefined symbol」信息,复制那个缺失的符号名,比如_OBJC_CLASS_$_GADRequest或者某个系统方法。然后:

    • 如果是SDK内部的符号:说明你没正确引入SDK的二进制,或者引入的SDK版本有问题,重新下载最新版或检查集成路径。
    • 如果是系统框架的符号:比如_CTTelephonyNetworkInfoCopyCurrentRadioAccessTechnology,这个符号属于CoreTelephony框架,直接在项目的Build Phases → Link Binary With Libraries里添加对应的框架即可。
  • 检查CocoaPods/Gradle的自动依赖处理
    如果你用CocoaPods(iOS)或Gradle(Android)集成SDK,这些工具通常会自动拉取并链接依赖框架,但偶尔会出现缓存或配置问题:

    • iOS:执行pod deintegrate → pod install重新安装,然后检查Podfile里是否正确声明了pod 'Google-Mobile-Ads-SDK'。
    • Android:同步Gradle,检查build.gradle里的依赖是否正确,并且确保仓库配置包含Google的maven仓库。
  • 清理项目缓存后重新编译
    有时候Xcode(或Android Studio)的缓存会导致奇怪的架构错误,先清理缓存:

    • Xcode:按Cmd+Shift+K清理项目,再按Cmd+Option+Shift+K清理构建文件夹,然后重新编译。
    • Android Studio:点击File → Invalidate Caches...,选择清理缓存并重启IDE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:22:57