使用AdMob横幅时,iOS应用会不断崩溃

时间:2016-07-23 03:23:26

标签: ios swift xcode sprite-kit admob

我正在使用 Xcode 7.3.1 SpriteKit Swift 制作iOS 8.0+游戏。每当我向其添加AdMob横幅时,我的应用都会继续崩溃。

我几乎从这里复制了横幅代码:https://firebase.google.com/docs/admob/ios/quick-start

以下是我的代码的一部分:

class GameViewController: UIViewController, GADBannerViewDelegate{

  @IBOutlet var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()

    if let scene = GameScene(fileNamed:"GameScene") {

        let skView = self.view as! SKView

        skView.ignoresSiblingOrder = true


        scene.scaleMode = .AspectFill

        skView.presentScene(scene)

        let request = GADRequest()
        bannerView.delegate = self
        bannerView.adUnitID = "(myAppID)"
        bannerView.rootViewController = self
        bannerView.loadRequest(request)


    }
  }
 }

它在任何模拟器上运行都很好,但它会在实际设备上崩溃应用程序。我一直收到这个错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'*** setObjectForKey: object cannot be nil (key: <f0cdd52e 01000000>)'
 *** First throw call stack: (0x1820b659c 0x19280c0e4 0x181fa11f8 0x1000ed1f8 0x100bbce30 0x100bbcdf0 0x100bc7854 0x100bc0120 0x100bc975c 0x100bcaf18 0x19302d2e4 0x19302cfa8)
libc++abi.dylib: terminating with uncaught exception of type NSException(lldb)

如果我删除了处理横幅广告的部分代码,我的应用就可以完美运行。

有关我可以采取哪些措施来解决问题的建议?此外,这是我第一次使用Xcode编写应用程序。

谢谢!

1 个答案:

答案 0 :(得分:0)

花了一段时间,但我想通了。我发现 Google移动广告SDK 框架就是问题所在。版本7.9.1似乎不适用于iOS 8.0,但在iOS 9上运行良好。我猜测这就是为什么它在我的设备上运行不好,因为我是使用SDK 7.9.1运行iOS 8。使用早期版本(如7.8.0),广告可以在iOS 8设备上轻松运行。