От няколко дни си блъскам главата за това. Не мога да накарам 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