2011-11-24 145 views
1

当我运行我的应用程序时,我收到iAd横幅视图的消息。这是什么意思?iAds不能在模拟器和设备中工作

错误域= ADErrorDomain代码= 3 “的操作无法完成 。广告资源不可用” 的UserInfo = 0x60455a0 {ADInternalErrorCode = 3,NSLocalizedFailureReason =广告库存 不可用}

这是我的代码:

#pragma mark - 
#pragma mark create BannerView: 
- (void)createAdBannerView { 
    Class classAdBannerView = NSClassFromString(@"ADBannerView"); 
    if (classAdBannerView != nil) { 
     self.adBannerView = [[[classAdBannerView alloc] initWithFrame:CGRectZero] autorelease]; 
     [adBannerView setRequiredContentSizeIdentifiers:[NSSet setWithObjects: ADBannerContentSizeIdentifierPortrait, ADBannerContentSizeIdentifierLandscape, nil]]; 
     if (UIInterfaceOrientationIsLandscape([UIDevice currentDevice].orientation)) { 
      [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierLandscape]; 
     } else { 
      [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait];    
     } 
     [adBannerView setFrame:CGRectOffset([adBannerView frame], 0, -[self getBannerHeight])]; 
     [adBannerView setDelegate:self]; 

     [self.view addSubview:adBannerView];   
    } 
} 

- (void)fixupAdView:(UIInterfaceOrientation)toInterfaceOrientation { 
    if (adBannerView != nil) {   
     if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { 
      [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierLandscape]; 
     } else { 
      [adBannerView setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait]; 
     }   
     [UIView beginAnimations:@"fixupViews" context:nil]; 
     if (adBannerViewIsVisible) { 
      CGRect adBannerViewFrame = [adBannerView frame]; 
      adBannerViewFrame.origin.x = 0; 
      adBannerViewFrame.origin.y = 0; 
      [adBannerView setFrame:adBannerViewFrame]; 
      CGRect contentViewFrame = contentView.frame; 
      contentViewFrame.origin.y = [self getBannerHeight:toInterfaceOrientation]; 
      contentViewFrame.size.height = self.view.frame.size.height - [self getBannerHeight:toInterfaceOrientation]; 
      contentView.frame = contentViewFrame; 
     } else { 
      CGRect adBannerViewFrame = [adBannerView frame]; 
      adBannerViewFrame.origin.x = 0; 
      adBannerViewFrame.origin.y = -[self getBannerHeight:toInterfaceOrientation]; 
      [adBannerView setFrame:adBannerViewFrame]; 
      CGRect contentViewFrame = contentView.frame; 
      contentViewFrame.origin.y = 0; 
      contentViewFrame.size.height = self.view.frame.size.height; 
      contentView.frame = contentViewFrame;    
     } 
     [UIView commitAnimations]; 
    } 
} 





#pragma mark - 
#pragma mark ADBannerViewDelegate 

- (void)bannerViewDidLoadAd:(ADBannerView *)banner { 
    if (!adBannerViewIsVisible) {     
     adBannerViewIsVisible = YES; 
     [self fixupAdView:[UIDevice currentDevice].orientation]; 
    } 
} 

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    NSLog(@"the failed error is %@",error); 
    if (adBannerViewIsVisible) 
    {   
     adBannerViewIsVisible = NO; 
     [self fixupAdView:[UIDevice currentDevice].orientation]; 
    } 
    //NSLog(@"bannerView:didFailToReceiveAdWithError: %@",[error localizedDescription]); 

} 


how to solve this problem 

回答

0

“广告资源不可用”表示......没有可用的广告。它看起来好像工作正常。

iAd很容易实现,但它们的填充率很低(即许多请求未实现),而且在许多国家/地区根本不可用。

2

您将在模拟器或设备中随机获取此错误消息,以便您可以在没有iAd可用时测试您的应用及其行为(隐藏AdView,使用其他广告提供商...)。但它不是来自Simulator/iAd框架/ iAd网络的错误:这是一个更好的测试功能。

此外,在测试设备上以测试模式部署应用程序时,您无法获得“真正的”iAds。它必须由Apple审核并从AppStore下载。

0

从您的设备中删除应用程序,然后从XCode重新安装。这为我修好了。

相关问题