Iphone iAds不在模拟器和设备中工作
当我运行我的应用程序时,我收到iAd横幅视图的消息。这是什么意思 错误Domain=ADErrorDomain Code=3“无法执行该操作 已完成。Ad库存不可用“UserInfo=0x60455a0 {ADInternalErrorCode=3,NSLocalizedFailureReason=Ad库存 不可用} 这是我的代码:Iphone iAds不在模拟器和设备中工作,iphone,objective-c,Iphone,Objective C,当我运行我的应用程序时,我收到iAd横幅视图的消息。这是什么意思 错误Domain=ADErrorDomain Code=3“无法执行该操作 已完成。Ad库存不可用“UserInfo=0x60455a0 {ADInternalErrorCode=3,NSLocalizedFailureReason=Ad库存 不可用} 这是我的代码: #pragma mark - #pragma mark create BannerView: - (void)createAdBannerView { Cl
#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
“广告库存不可用”是指。。。没有可用的广告。看起来好像工作正常
iAd很容易实现,但它们的填充率很低(即,许多请求无法实现),而且在许多国家根本不可用。您将在模拟器或设备中随机收到此错误消息,以便在没有iAd可用时测试您的应用程序及其行为(隐藏AdView,使用其他广告提供商…)。但这并不是来自模拟器/iAd框架/iAd网络的bug:它是一种用于进行更好测试的功能
此外,在测试设备上以测试模式部署应用程序时,您无法获得“真实”的IAD。它必须由苹果审查并从AppStore下载。从设备中删除该应用程序,然后从XCode重新安装。那帮我修好了