Swift中的IMAAdsLoader错误,但目标C中没有错误

时间:2019-07-07 19:18:40

标签: swift tvos google-ima

我正在tvOS中使用GoolgeInteractiveMediaAds框架。在此过程的开始,我从委托人那里得到了一个错误:Error loading ads: nil。我还加载了用Objective C编写的示例Google项目,该项目运行无误。此阶段的代码非常少,我已经比较了两个项目,发现在AppDelegateInfo.plist方面没有什么区别(唯一的区别是Swift项目从情节提要中启动) 。

以下是代码的总和。运行setUpAdsLoader时,立即点击您在底部看到的错误委托。将他们的示例Objective C项目缩减到仅这些行,不会产生此错误。

import UIKit
import GoogleInteractiveMediaAds

class ViewController: UIViewController, IMAAdsLoaderDelegate {

private var adsLoader: IMAAdsLoader?

override func viewDidLoad() {
    super.viewDidLoad()

    setUpAdsLoader()
}

func setUpAdsLoader() {
    self.adsLoader = IMAAdsLoader(settings: nil)
    self.adsLoader!.delegate = self
}

func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
    // Grab the instance of the IMAAdsManager and set ourselves as the delegate
    //adsManager = adsLoadedData.adsManager
    //adsManager!.delegate = self

    // Create ads rendering settings and tell the SDK to use the in-app browser.
    let adsRenderingSettings = IMAAdsRenderingSettings()
    adsRenderingSettings.webOpenerPresentingController = self

    // Initialize the ads manager.
    //adsManager!.initialize(with: adsRenderingSettings)
}

func adsLoader(_ loader: IMAAdsLoader!, failedWith adErrorData: IMAAdLoadingErrorData!) {
    print("Error loading ads: \(String(describing: adErrorData.adError.message))")
}
}

更新:我创建了相同的测试项目,但是这次是使用Objective C进行的。工作没有错误。很难相信问题是语言,但是我想知道这两种语言之间是否存在Xcode设置差异?

2 个答案:

答案 0 :(得分:1)

我今天在这个问题上苦苦挣扎,发现我在这里描述的是

https://github.com/googleads/googleads-ima-tvos-client-side/issues/4

TL; DR:

如果可能的话,将tvos短语添加到您的商品组合ID中。

答案 1 :(得分:0)

来自Google的IMA SDK团队:

  

目前,恐怕我们无法为此提供支持   文档和示例应用程序仅在Obj-c版本上。一种   已针对tvOS Swift版本的IMA SDK提出了功能请求。   但是,我无法确定何时可用。

因此,在可预见的将来,我们可能会在目标C中编写此部分代码。

IMA小组的更新,现在表明这实际上是其SDK中的错误。

  

我已经将此问题提出给了团队的其他成员。根据讨论,   似乎是我们SDK方面的错误,并且已经传递给   我们的工程团队需要进一步调查。我会更新   线程以获取任何可用反馈