Google AdMob не работает в Xamarin Form iOS для устройств с большим экраном, таких как iPhone 7 и 7 Plus

Я работаю над приложением для iOS на платформе Xamarin Forms. Я использую Google AdMob и реализовал его по этому URL-адресу http://motzcod.es/post/154696375922/xamarinforms-google-admob-ads-in-ios

Он отлично работает на всех устройствах и симуляторах с версией iOS 10.2.

Он также работает с iOS версии 10.3, но только на меньшем количестве устройств, таких как iPhone 5s и 5c, но не на устройствах и симуляторах для iPhone 6, 6s, 6s Plus, 7, 7 Plus.

Дальнейшая отладка вызывает следующую ошибку: «Error Domain = com.google.ads Code = 13» Ошибка запроса: получен недопустимый ответ. UserInfo = {NSLocalizedDescription = Ошибка запроса: получен недопустимый ответ., NSLocalizedFailureReason = Ошибка запроса: получен недопустимый ответ. } "

Я искал эту ошибку и тоже исправил, но это тоже не сработало.

Я ценю, если кто-нибудь может помочь. Спасибо


person Vivek Vishwakarma    schedule 01.06.2017    source источник
comment
Я мог ошибаться, но я считаю, что теперь в более поздних версиях iOS требуется, чтобы URL-адрес был https, а не http.   -  person Digitalsa1nt    schedule 01.06.2017
comment
Привет, чтобы запустить ключ, необходимо добавить NSAppTransportSecurity, что я уже сделал при первом запуске проекта.   -  person Vivek Vishwakarma    schedule 08.06.2017
comment
Есть кто-нибудь, кто может помочь в этом? Я занимаюсь той же проблемой.   -  person Supreet    schedule 09.06.2017


Ответы (2)


к вашему сведению, я следил за этим блогом http://motzcod.es/post/154696375922/xamarinforms-google-admob-ads-in-ios

BannerView используется в пользовательском рендерере iOS следующим образом

        adView = new BannerView(size: AdSizeCons.SmartBannerPortrait,
                                       origin: new CGPoint(0, UIScreen.MainScreen.Bounds.Size.Height - AdSizeCons.Banner.Size.Height))
        {
            AdUnitID = bannerId,
            RootViewController = GetVisibleViewController()
        };

Вместо того, чтобы создавать свой объект с помощью параметризованного конструктора, просто создайте его следующим образом

        adView = new BannerView()
        {
            AdUnitID = bannerId,
            RootViewController = GetVisibleViewController()
        };

Вышеупомянутая реализация устранила проблему во всех версиях и устройствах iOS.

person Vivek Vishwakarma    schedule 12.07.2017

Вы можете попробовать App Transport Security и добавить следующие строки в Info.plist.

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

Это может решить вашу проблему.

person amigo_2627    schedule 01.06.2017
comment
Привет, спасибо за ответ. Я уже добавил эти ключи при первом запуске проекта. - person Vivek Vishwakarma; 08.06.2017