Google AdMob 不适用于 iPhone 7 和 7 Plus 等大屏幕设备的 Xamarin Form iOS

Posted

技术标签:

【中文标题】Google AdMob 不适用于 iPhone 7 和 7 Plus 等大屏幕设备的 Xamarin Form iOS【英文标题】:Google AdMob is not working in Xamarin Form iOS for larger screen devices like iPhone 7 and 7 Plus 【发布时间】:2017-06-01 13:51:45 【问题描述】:

我正在使用 Xamarin Forms 平台开发 ios 应用程序。我正在使用 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”Request Error: Received invalid response.” UserInfo=NSLocalizedDescription=Request Error: Received invalid response., NSLocalizedFailureReason=Request Error: Received无效响应。"

我搜索了这个错误并应用了修复,但效果不佳。

如果有人可以提供帮助,我将不胜感激。谢谢

【问题讨论】:

我可能弄错了,但我相信现在更高版本的 iOS 要求 URL 必须是“https”而不是“http” 您好,为了让它运行,必须添加一个密钥 NSAppTransportSecurity,我在第一次运行项目时已经这样做了。 有人可以帮忙吗?我正在处理同样的问题。 【参考方案1】:

仅供参考,我关注了这个博客http://motzcod.es/post/154696375922/xamarinforms-google-admob-ads-in-ios

iOS的自定义渲染器中这样使用BannerView

        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 版本和设备中的问题。

【讨论】:

【参考方案2】:

您可能想尝试App Transport Security 并将以下行添加到Info.plist

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

这可能会解决您的问题。

【讨论】:

您好,感谢您的回复。我在第一次运行项目时已经添加了这些键。

以上是关于Google AdMob 不适用于 iPhone 7 和 7 Plus 等大屏幕设备的 Xamarin Form iOS的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Google Cloud Messaging 通知不适用于 iPhone 生产环境?

Google Charts 散点图适用于 Chrome Macbook,但不适用于 Chrome iPhone

iOS 7 Google AdMob 未出现

AdWhirl (AdMob, iAd) 广告未在已发布的 iPhone 应用程序中显示

AdWhirl (AdMob, iAd) 广告未在已发布的 iPhone 应用程序中显示

布局不适用于 iPhone 6