Я использую фреймворк GoolgeInteractiveMediaAds
в tvOS. В самом начале процесса я получаю сообщение об ошибке от делегата: Error loading ads: nil
. Я также загрузил образец проекта Google, написанный на Objective C, который работает без ошибок. На данном этапе кода крайне мало, и я сравнил два проекта и не вижу различий, имеющих значение с точки зрения AppDelegate
и Info.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))")
}
}
Обновление: я создал тот же тестовый проект, но на этот раз сделал это, используя Цель C. Работал без ошибок Трудно поверить, что проблема в языке, но мне интересно, есть ли какие-либо различия в настройках XCode между этими двумя языками, которые привели бы к этому?