我制作了一个使用iAd的 iPhone应用程序。在iPhone模拟器和设备上它工作正常。它已经在App Store上了。
今天,我的一位客户告诉我iAd没有出现在iPad上。因此,我在iPad模拟器上构建我的应用程序并且它没有显示,而iPhone模拟器/ iPhone设备的工作方式与预期的一样。
在显示内容之前,我从不测试它是哪个设备,所以这不是错误。
这个没有显示任何错误:- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
有什么想法吗?
答案 0 :(得分:7)
如果您想使用iAd,您几乎需要成为一款通用应用。在兼容模式下(在模拟器或真实的iPad上)在iPad上运行时,我的仅限iPhone的iAd应用会调用bannerViewDidLoadAd,但会显示空格而不是广告。 Apple“iAd实施最佳实践”文档说:
Create Universal Apps
To ensure your app is capable of displaying iAd banners for all your users,
make sure you’ve developed a universal app that supports all possible devices.
**iPhone apps running in compatibility mode on iPad will not display a test ad
in development or live ads in deployed apps.**
https://developer.apple.com/library/ios/technotes/tn2264/_index.html
答案 1 :(得分:6)
我有类似的问题。对我来说唯一的解决方案是使应用程序具有普遍性。一旦应用程序通用,iAd就开始工作了。
您可能会注意到,即使是来自iAds套件的一些应用程序,Apple也无法运行。他们在这里的描述中提到了这方面的一些内容:
http://developer.apple.com/library/ios/#samplecode/iAdSuite/Introduction/Intro.html
BasicBanner和ContainerBanner配置为支持iPhone和iPad惯用语,TabbedBanner和NavigationBanner仅支持iPhone惯用语,SplitViewBanner仅支持iPad惯用语。
我发现的唯一区别是通用与iPhone应用设置(目标 - > SUmmary->设备组合框)。
不过,如果我没记错的话,我的- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
被召唤了。该错误说明了没有可用的iAd。
另外,我只尝试过iOS5(模拟器和设备)。
希望这会对你有所帮助;)
更新:如果您使用的是较旧的SDK,请检查此SO问题: Is iAds not available for iPad apps?
答案 2 :(得分:0)
作为替代答案,这对我有用...因为我忘了它。很久以前我在设置/开发者页面中将iAds的填充率设置为0%...... DOOH!
所以请在那里三重检查。