在iOS9,Swift,SpriteKit游戏中Admob interstitial ad致命错误

时间:2016-03-10 07:44:35

标签: swift sprite-kit admob ios9

我尝试在我的Swift,SpriteKit,iOS9游戏中放置一个admob插页式广告时,发生了致命的崩溃。

我相信我已经通过CocoaPods正确设置了Admob SDK和依赖项,遵循此处的简化说明: https://developers.google.com/admob/ios/quick-start

我的Podfile:

platform :ios, '7.0'
use_frameworks!

source 'https://github.com/CocoaPods/Specs.git'
pod 'Google-Mobile-Ads-SDK', '~> 7.0'

target 'My Project's Name' do

end

然后我按照本指南操作: https://developers.google.com/admob/ios/interstitial

这是一款游戏,所以我把代码放在GameViewController.swift(而不是ViewController.swift。)相关位:

import GoogleMobileAds

class GameViewController: UIViewController, GADInterstitialDelegate {

var interstitial: GADInterstitial!

override func viewDidLoad() {
    super.viewDidLoad()

    print("Google Mobile Ads SDK version: " + GADRequest.sdkVersion())

    self.interstitial = createAndLoadInterstitial()

    // unrelated code
    }
}

func createAndLoadInterstitial() -> GADInterstitial {
    var interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
    interstitial.delegate = self
    interstitial.loadRequest(GADRequest())
    return interstitial
}


 func interstitialDidDismissScreen(ad: GADInterstitial!) {
    self.interstitial = createAndLoadInterstitial()
}


func gameOver() {
    if self.interstitial.isReady {
        self.interstitial.presentFromRootViewController(self)
    }
}

我在控制台中获得了正确的输出:Google Mobile Ads SDK version: afma-sdk-i-v7.7.0

但是我在gameOver()函数中遇到了这个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

它似乎位于if self.interstitial.isReady行。

我确实在这里详细说明了App Transport Security(ATS)津贴: https://developers.google.com/admob/ios/ios9

XML看起来像:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

我还尝试使用我的实际广告ID更改上面的广告单元ID(Google的说明中的测试代码),但没有骰子 - 同样的错误。

任何建议都将不胜感激。

干杯, 凯文

1 个答案:

答案 0 :(得分:2)

您是否检查广告是否已正确预加载,因此不是零?

您还可以在...... isReady行

之前添加一项检查
 guard self.interstitial != nil else { return }

确保它不是零。

如果你仍然卡住我在gitHub上有一个广告帮助你退房,它还包括adMob

https://github.com/crashoverride777/Swift2-iAds-AdMob-CustomAds-Helper