2016-06-29 4 views
0

Mon application a été approuvée il y a seulement quelques jours et avait une bannière iAd en bas de l'écran. Je sais que cela peut prendre jusqu'à une semaine pour que les annonces commencent à apparaître, mais pendant que j'attends ... quelqu'un peut-il m'assurer que je n'ai aucune erreur dans mon code?Y at-il un problème avec mon code iAd?

import UIKit 
import SpriteKit 
import iAd 
import GameKit 

class GameViewController: UIViewController, ADBannerViewDelegate, GKLocalPlayerListener { 

var adBanner: ADBannerView! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    authenticateLocalPlayer() 
    if let scene = GameScene(fileNamed:"GameScene") { 
     // Configure the view. 
     let skView = self.view as! SKView 

     skView.ignoresSiblingOrder = true 
     scene.scaleMode = .AspectFill 

     skView.presentScene(scene) 


    } 

} 

func loadBanner() { 

    adBanner = ADBannerView(frame: CGRect.zero) 
    adBanner.center = CGPoint(x: adBanner.center.x, y: view.bounds.size.height - adBanner.frame.size.height/2) 
    adBanner.delegate = self 
    adBanner.hidden = true 
    view.addSubview(adBanner) 
} 
func bannerViewDidLoadAd(banner: ADBannerView!) { 
    adBanner.hidden = false 
} 
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 

    adBanner.hidden = true 
} 
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
    return true 
} 
override func shouldAutorotate() -> Bool { 
    return true 
} 

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { 
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone { 
     return .AllButUpsideDown 
    } else { 
     return .All 
    } 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Release any cached data, images, etc that aren't in use. 
} 

override func prefersStatusBarHidden() -> Bool { 
    return true 
} 


func authenticateLocalPlayer() { 
    let localPlayer = GKLocalPlayer.localPlayer() 
    localPlayer.authenticateHandler = {(viewController, error) -> Void in 

     if (viewController != nil) { 
      self.presentViewController(viewController!, animated: true, completion: nil) 
     } 
     else { 
      print((GKLocalPlayer.localPlayer().authenticated)) 
     } 
    } 
} 

}

En ce moment, il affiche juste un rectangle blanc. Y at-il un problème avec mon code ou dois-je attendre que mon application commence à recevoir des annonces?

+0

Il me faudra donc implémenter AdMob ou d'autres services publicitaires tiers au lieu d'iAd? –

+0

Oui, il existe d'autres fournisseurs si vous recherchez des revenus basés sur des annonces. – Shen

+0

iAd a été arrêté aujourd'hui. Le framework iAd sera obsolète: [iAd est en cours de fermeture] (http://stackoverflow.com/a/37347959/2108547). –

Répondre

5

iAd est officiellement arrêté à partir de demain (30 juin 2016). Je ne suis pas sûr du processus de "s'inscrire" maintenant, mais je crois qu'Apple a cessé d'enregistrer des applications pour recevoir des publicités de leur réseau il ya quelques mois

0

Qui appelle le loadBanner()?

Vous pouvez envisager de surcharger viewDidAppear() et d'y déplacer le code.