Я ломал голову над этим пару дней. Я не могу заставить iAds отображаться в симуляторе (или на реальном оборудовании).
- Я заполнил всю информацию о контракте в iTunes Connect
- Создан профиль обеспечения разработки для приложения.
- Связал фреймворк iAd и импортировал его в верхнюю часть файла Swift ViewController.
- Сделал ViewController подклассом ADBannerViewDelegate.
- реализовано 3 метода для делегата (см. ниже)
Я не могу понять, почему тестовые объявления не загружаются. У кого-нибудь еще была эта проблема? Насколько я понимаю, вам больше не нужно отдельно регистрировать каждое приложение для iAds через iTunes Connect.
Я включу свой код ниже для справки, хотя у меня есть подозрение, что проблема где-то в настройке.
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
}
}
Редактировать: этим утром я попытался загрузить и запустить несколько демонстраций iAd с gitHub, чтобы посмотреть, смогу ли я заставить их работать, но безрезультатно. Я предполагаю, что код правильный, поэтому что-то должно быть не так в другом месте. https://github.com/sarchak/iAds
self.canDisplayBannerAds = true
вам не нужен делегат объекта bannerView и т. д. Все устанавливается автоматически. Когда баннер доступен, размер вашего контроллера просмотра будет изменен на высоту минус высота баннера, и будет запущена автоматическая компоновка. Таким образом, баннер всегда отображается внизу. Проверьте, поместили ли вы правильный классADViewController
в свою раскадровку. Поскольку вы вручную добавляете представление баннера, разве вашADBannerView
не встроен в контроллер представления вкладок? Возможно, ваш баннер находится под вкладками. - person Matteo Piombo   schedule 17.01.2015self.canDisplayBannerAds = true
в viewDidLoad, у меня работает. В своем проекте я использовал другой подход, так как мне нужно было разместить рекламу вверху. У меня был bannerView как синглтон, используемый различными ViewController. Вы зарегистрированный (платный) разработчик? Я не знаю, является ли это обязательным для получения тестовых баннеров разработки. - person Matteo Piombo   schedule 17.01.2015self.canDisplayBannerAds = true
вviewDidLoad
, но безуспешно. Я зарегистрирован как платный разработчик. Я действительно в тупике. - person Erik   schedule 17.01.2015self.canDisplayBannerAds = true
вы не видите смоделированные неудачные запросы баннеров. - person Matteo Piombo   schedule 18.01.2015