iOS9、Swift、SpriteKit 游戏中的 Admob 插页式广告致命错误

Admob interstitial ad fatal error in iOS9, Swift, SpriteKit game

当我尝试在我的 Swift、SpriteKit、iOS9 游戏中放置 admob 插页式广告时,我遇到了致命的崩溃。

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

我的播客文件:

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 行。

我确实在此处详细说明了应用程序传输安全 (ATS) 津贴: https://developers.google.com/admob/ios/ios9

XML 看起来像:

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

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

如有任何建议,我们将不胜感激。

干杯, 凯文

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

您还可以在 ...isReady 行之前添加一个检查

 guard self.interstitial != nil else { return }

确保它不为零。

如果您仍然卡住了,我有一个广告助手可以让您gitHub结帐,它也包括 adMob

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