2014-02-11 81 views
0

我目前正在崩潰,這使我的應用程序出應用程序商店,它似乎發生時,我創建一個谷歌廣告作爲iAd退後。 它只發生在兼容性模式下運行IOS 6.0-6.1的I-pad(應用程序不是通用的),它似乎發生在: [googleAdvertBanner loadRequest:releaseRequest];iOS 6.0-6.1 Ipad崩潰Admob和iAd

任何幫助將非常感激,這裏就是我得到的代碼視圖時,我崩潰:

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]; 

} 

回答

0

嘗試在執行GADRequest之前檢查互聯網可達性。我曾在離線加載adMob橫幅時遇到崩潰的問題。

if ([[Reachability reachabilityForInternetConnection] isReachable]) { 
    //... banner init etc 

    // release request 
    GADRequest *releaseRequest = [GADRequest request]; 
    // load the request 
    [googleAdvertBanner loadRequest:releaseRequest]; 
} 
+0

感謝您的信息Yourik,我在下載Json之前執行網絡檢查,但我不確定這是問題,因爲該應用在iOS 6及更高版本的iPhone 4和5上正常工作。 – SmokersCough

0

好吧想我解決了這個問題:

我有我的AdMob中介也服務於iAd系統以及具有一個adbannerview,我相信,在其下端IOS版本6.0-6.1當介導iAd失敗了,因爲adbannerview不存在或者它根本無法運行該方法,所以無法調用failedToLoad,從admob設置中刪除調解解決了崩潰問題。