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

Google-Mobile-Ads-SDK 9.11.0启动崩溃求助:GADMutableArrayAddObject异常

集成Google-Mobile-Ads-SDK 9.11.0首次启动崩溃于GADMutableArrayAddObject的解决方案

以下是针对该崩溃问题的可行排查与解决方向:

  • 升级至最新SDK版本
    9.11.0属于较早期的版本,Google后续版本大概率修复了这类内部数组操作的bug。如果使用CocoaPods,执行命令pod update Google-Mobile-Ads-SDK升级到最新稳定版后再测试。

  • 规范SDK初始化逻辑
    确保在App主线程的启动方法(如application:didFinishLaunchingWithOptions:)中完成AdMob SDK初始化,避免子线程操作引发的线程安全问题。示例代码:

    // Objective-C
    #import <GoogleMobileAds/GoogleMobileAds.h>
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        [GADMobileAds sharedInstance].requestConfiguration.testDeviceIdentifiers = @[ @"YOUR_TEST_DEVICE_ID" ];
        [[GADMobileAds sharedInstance] startWithCompletionHandler:nil];
        return YES;
    }
    
    // Swift
    import GoogleMobileAds
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        let requestConfiguration = GADRequestConfiguration()
        requestConfiguration.testDeviceIdentifiers = ["YOUR_TEST_DEVICE_ID"]
        GADMobileAds.sharedInstance().requestConfiguration = requestConfiguration
        GADMobileAds.sharedInstance().start(completionHandler: nil)
        return true
    }
    
  • 排查第三方库冲突
    检查项目中是否存在修改NSMutableArray或相关系统类的分类/库,这类自定义实现可能与AdMob SDK内部的数组操作逻辑冲突。可以尝试暂时移除可疑第三方库,逐一验证是否解决崩溃。

  • 清理项目缓存并重建
    执行Xcode缓存清理(Cmd+Shift+K),删除DerivedData目录,重新执行pod install后编译运行,排除缓存导致的编译异常问题。

  • 启用Zombie Objects调试定位
    在Xcode中开启Zombie Objects检测,排查是否为内存释放后的野指针操作导致崩溃:

    1. 打开Edit Scheme → Run → Diagnostics
    2. 勾选Zombie Objects选项,重新运行App并触发崩溃,查看详细的内存异常信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:30:51