【问题标题】:Crash on IOS 6.0-6.1 Ipad only Admob and iAd仅在 IOS 6.0-6.1 Ipad 上崩溃 Admob 和 iAd
【发布时间】:2014-02-11 14:23:26
【问题描述】:

我目前遇到的崩溃导致我的应用无法进入应用商店,这似乎是在我创建谷歌广告作为 iAd 的后备广告时发生的。 它只发生在以兼容模式运行 IOS 6.0 - 6.1 的 I-pad 上(该应用程序不是通用的),它似乎发生在以下情况之后: [googleAdvertBanner loadRequest:releaseRequest];

任何帮助将不胜感激,这是我在崩溃时在代码视图中得到的内容:

GADMAdNetworkConnectorImpl.m:95
0x49e008:  addl   $60, %esp  --- Thread 1:EXEC_BAD_ACCESS (code=2, address=0xf)

日志显示如下:

DBannerView: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=3 "The operation couldn’t be completed. Ad inventory unavailable" UserInfo=0x13c9e380 {ADInternalErrorCode=3, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Ad inventory unavailable}

还有我用于处理广告的应用代码:

#pragma mark Ad Banner Delegate
#pragma mark -

- (void)bannerViewDidLoadAd:(ADBannerView *)banner{
    // remove the google advert banner

    [googleAdvertBanner removeFromSuperview];

    // dont use auto resizing mask for constraints

    advertBanner.translatesAutoresizingMaskIntoConstraints = NO;

    // scroll the ad bar

    [self moveViews:adView down:YES];



    //NSLog(@"IAD advert has SUCCEEDED");

}


- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{

    // scroll the ad bar

    [self moveViews:adView down:NO];

    // create the google advert

    [self createGoogleAdvert];

    //NSLog(@"IAD advert has FAILED");

}




- (void)bannerViewActionDidFinish:(ADBannerView *)banner{



}

#pragma mark GoogleAd Banner Delegate

#pragma mark -

- (void)adViewDidReceiveAd:(GADBannerView *)view{

    // dont use auto resizing mask for constraints

    googleAdvertBanner.translatesAutoresizingMaskIntoConstraints = NO;

    // add the google advert banner

    [adView addSubview:googleAdvertBanner];

    // scroll the ad bar

    [self moveViews:adView down:YES];

    //NSLog(@"Google advert has SUCCEEDED");

}


- (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error{

    // remove the google ad and instantiate the apple advert

    [googleAdvertBanner removeFromSuperview];

    // scroll the ad bar

    [self moveViews:adView down:NO];

    //NSLog(@"Google advert has FAILED");

}


- (void)adViewDidDismissScreen:(GADBannerView *)adView{


}


#pragma mark Create GoogleAd Banner

#pragma mark -

- (void)createGoogleAdvert{

    // if the googleadvert banner has not been initiated

    if (!googleAdvertBanner) {

        // create google advert banner

        googleAdvertBanner = [[GADBannerView alloc]initWithAdSize:kGADAdSizeBanner];

    }

    // set the ads "unit identifier", delegate and root view controller

    googleAdvertBanner.adUnitID = @"myid which is correct";

    googleAdvertBanner.delegate = self;

    googleAdvertBanner.rootViewController = self;

    // test request

    //GADRequest *testRequest = [GADRequest request];

    //testRequest.testDevices = [NSArray arrayWithObjects:GAD_SIMULATOR_ID, @"0525457c40445ae54cac4f282ba0d409", nil];

    // release request

    GADRequest *releaseRequest = [GADRequest request];

    // load the request

    [googleAdvertBanner loadRequest:releaseRequest];

}

【问题讨论】:

    标签: ipad ios6 crash admob iad


    【解决方案1】:

    在执行 GADRequest 之前尝试检查 Internet 可访问性。我有过离线加载 adMob 横幅时崩溃的经历。

    if ([[Reachability reachabilityForInternetConnection] isReachable]) {
      //... banner init etc
    
      // release request
      GADRequest *releaseRequest = [GADRequest request];
      // load the request
      [googleAdvertBanner loadRequest:releaseRequest];
     }
    

    【讨论】:

    • 感谢 Yourik 的信息,我在下载 Json 之前确实会进行网络检查,但我不确定这是不是问题,因为该应用程序在 IOS 6 及更高版本的 iphone 4 和 5 上运行良好。
    【解决方案2】:

    好吧,我认为我解决了这个问题:

    我的 admob 中介也为 iAd 提供服务以及 adbannerview,我相信在低端 IOS 版本 6.0-6.1 上,当中介 iAd 失败时,它无法调用 failedToLoad,因为 adbannerview 不存在或者它根本无法运行该方法,从我的 admob 设置中删除中介解决了崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-27
      • 2012-11-26
      • 2014-10-27
      • 2016-03-30
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多