2014-02-09 1 views
0

Я внедрил iAds в свое приложение, но при запуске приложения на симуляторе я получаю очень странные ошибки. Они, как правило, различны, но наиболее распространенной ошибкой является Error in Loading Banner! Error Domain=ADErrorDomain Code=4 "The operation couldn’t be completed. Application has iAd Network configuration error" UserInfo=0xa368250 {ADInternalErrorCode=4, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Application has iAd Network configuration error}Внедрение iAds правильно в iOS7

И последнее: Error Domain=ADErrorDomain Code=5 "The operation couldn’t be completed. Banner view is visible but does not have content" UserInfo=0xa3a0c40 {ADInternalErrorCode=5, ADInternalErrorDomain=ADErrorDomain, NSLocalizedFailureReason=Banner view is visible but does not have content}

Я не могу понять, почему это происходит. Я дважды проверял, чтобы симулятор подключался к Wi-Fi, и часы также правильно установлены. Это, как я реализовал МААШ:

Соответствующий код в .h:

#import "iAd/ADBannerView.h" 
    @interface myViewController : UIViewController <ADBannerViewDelegate> { 
    ADBannerView *adView; 
} 
    @property (nonatomic, retain) IBOutlet ADBannerView *adView; 

И все соответствующего кода в моей .m:

@synthesize adView; 
... 
- (void)viewDidLoad { 

    adView.delegate = self; 
    adView.hidden = YES; 

    [super viewDidLoad]; 
} 
... 
-(void)bannerView:(ADBannerView *)banner 
didFailToReceiveAdWithError:(NSError *)error{ 
    NSLog(@"Error in Loading Banner! %@", error); 
} 

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{ 
    NSLog(@"iAd banner Loaded Successfully!"); 
} 
-(void)bannerViewWillLoadAd:(ADBannerView *)banner{ 
    NSLog(@"iAd Banner will load!"); 
} 
-(void)bannerViewActionDidFinish:(ADBannerView *)banner{ 
    NSLog(@"iAd Banner did finish"); 

} 

Затем я перетащил в AdBannerView на взгляд и подключили выходы в контроллерах вида. Правильно ли это? Если да, что может быть причиной этой ошибки? Приложение не разбивается ... объявления просто не отображаются. Предположительно, это распространенная проблема, но я никогда не смог найти решение.

Я включил push-уведомления для профиля профилирования и попытался найти раздел для iAds, но не смог. Может ли это быть проблемой?

Я также обеспечил, что AdBannerView, который я использую, составляет ровно 320x50. Сегодня утром я попробовал с тем же кодом, и это та же проблема. Должен ли я просто идти вперед и предположить, что это проблема Apple/iAd и отправить мое приложение, если вышеприведенное реализовано правильно?

+1

Вы видели это: http://chrisrisner.com/31-Days-of-iOS--Day-29-Advertising-with-iAd – logixologist

+1

@logixologist Да, это было на самом деле то, что я ушел из – John

+0

, тогда не они адресуете точную ошибку конкретно? – logixologist

ответ

1

Должно возникнуть проблема с сетью iAd. Протестировал тот же самый код через день, и он волшебным образом теперь работает на устройстве.

+0

Для остальных людей, приезжающих сюда, я думаю, что хорошо указать, что вы можете заставить 100% -ный шанс успеха в получении iAds из «Настройки -> Разработчик -> IAD DEVELOPER APP TESTING -> FillRate». Просто исключить другие типы ошибок. –

2

.h файл

#import <iAd/iAd.h> 

@interface MainViewController : CDVViewController <ADBannerViewDelegate> 

@end 

.m

#pragma mark iAd Delegate Methods 
- (void) bannerViewDidLoadAd:(ADBannerView *)banner { 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[banner setAlpha:1]; 
[UIView commitAnimations]; 
} 

- (void) bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[banner setAlpha:0]; 
[UIView commitAnimations]; 
} 

убедитесь, что перед вашим @end в вашем mainviewcontroller

последний раз перетащить и падение adbanner на раскадровку и Ctrl + кликнуть и перетащить с баннера до владельца файла под заполнителями, это значок золотого окна, а затем нажать делегат.

+1

анимации делают это так, что он затухает и выходит на основе того, есть ли соединение. Я знаю, что это метод, который можно сделать с меньшим количеством кода, но это то, что я использую, и он отлично работает. – siegs

+0

Спасибо, я только что реализовал это, и, к сожалению, я получаю те же ошибки. Считаете ли вы, что это может быть проблемой для моего профиля предоставления? – John

+0

это может быть, но, скорее всего, это не так. вы протестировали его на реальном физическом устройстве? иногда мой немного пятнистый и на xcode.однако, если вы уже отправили свое приложение, для этого нужно всего пару дней, чтобы показать фактические iads – siegs