【发布时间】:2015-01-17 03:47:15
【问题描述】:
这几天我一直在摸不着头脑。我无法在模拟器(或真实硬件)中显示 iAd。
- 我在iTunes Connect上填写了所有合同信息
- 为应用创建了开发配置文件
- 链接 iAd 框架并将其导入到 ViewController 的 swift 文件的顶部
- 使 ViewController 成为 ADBannerViewDelegate 的子类
- 为委托实现了 3 个方法(见下文)
我不知道为什么没有加载测试广告。其他人有这个问题吗?据我了解,您不再需要通过 iTunes Connect 为 iAd 单独注册每个应用程序。
我将在下面包含我的代码以供参考,尽管我怀疑问题出在设置的某个地方。
import UIKit
import iAd
class AdViewController: UIViewController, ADBannerViewDelegate {
var bannerView = ADBannerView()
override func viewDidLoad() {
super.viewDidLoad()
self.canDisplayBannerAds = true
bannerView.frame = CGRectMake(0, self.view.frame.height-50, self.view.frame.width, 50)
view.addSubview(bannerView)
bannerView.delegate = self
bannerView.hidden = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
self.bannerView.hidden = false
println("bannerView unhidden")
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
bannerView.hidden = true
println("bannerView hidden")
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
return willLeave
}
}
编辑: 今天早上,我尝试从 gitHub 下载并运行一些 iAd 演示,以查看是否可以让它们工作,但无济于事。我假设代码是正确的,所以其他地方一定有问题。 https://github.com/sarchak/iAds
【问题讨论】:
-
一旦你设置了
self.canDisplayBannerAds = true,你就不需要bannerView对象委托等。一切都是自动设置的。当横幅可用时,您的视图控制器将调整高度减去横幅高度,并触发自动布局。这样,横幅始终显示在底部。检查您是否在情节提要中放置了正确的ADViewController类。由于您手动添加横幅视图,您的ADBannerView不是嵌入在选项卡视图控制器中吗?也许你的横幅在标签下。 -
感谢您的回复。我没有意识到横幅会自动添加并且自动布局会启动。这很有帮助。不幸的是,它似乎并没有解决问题。我尝试下载这个示例项目并运行它,但这也不起作用。 github.com/ashishkakkad8/iAdBannerExample它对你有用吗?
-
没试过,但是开始一个新项目,在 viewDidLoad 中添加 iAd 框架和
self.canDisplayBannerAds = true,对我有用。在我的一个项目中,我使用了不同的方法,因为我需要在顶部展示广告。我有一个bannerView 作为各种ViewController 使用的单例。您是注册(付费)开发者吗?我不知道为了接收开发测试横幅是否是强制性的。 -
我刚刚尝试创建一个新项目,添加iAd框架和导入语句,然后在
viewDidLoad中添加self.canDisplayBannerAds = true,但没有运气。我注册为付费开发者。我真的很难过。 -
我不知道为什么,但它刚刚开始在我的 iPhone 上运行。在模拟器中还是不行,但至少我现在取得了一些进展。