【问题标题】:Test iAds won't load测试 iAd 无法加载
【发布时间】:2015-01-17 03:47:15
【问题描述】:

这几天我一直在摸不着头脑。我无法在模拟器(或真实硬件)中显示 iAd。

  1. 我在iTunes Connect上填写了所有合同信息
  2. 为应用创建了开发配置文件
  3. 链接 iAd 框架并将其导入到 ViewController 的 swift 文件的顶部
  4. 使 ViewController 成为 ADBannerViewDelegate 的子类
  5. 为委托实现了 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 上运行。在模拟器中还是不行,但至少我现在取得了一些进展。

标签: ios iphone swift iad


【解决方案1】:

不建议手动设置广告视图的大小。
使用init()方法再调整框架没有任何意义

你应该像这样初始化你的横幅视图: let bannerView = ADBannerView(adType:ADAdType.Banner) 然后立即设置其委托并将其添加到根视图

【讨论】:

  • 哇,解决了!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多