Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat | DONATE
Admob problem on iOS 10 / XCode 8.1/8.2 — Gideros Forum

Admob problem on iOS 10 / XCode 8.1/8.2

NatWobbleNatWobble Member
edited December 2016 in Bugs and issues
Hi Guys,

Admob ads were working ok on my iPad Air 2 (iOS 10.1) but always causing the app to freeze on the iPhone 5.
So I did some research and noticed that the Admob docs state that we should use at least version 7.15.0:
To ensure your ads are not impacted by ATS, do the following:
Update to version 7.15.0 or later of the Mobile Ads SDK.
Add the NSAllowsArbitraryLoads, NSAllowsArbitraryLoadsForMedia, and NSAllowsAribtraryLoadsInWebContent exceptions to your app's Info.plist file to disable ATS restrictions.

NSAppTransportSecurity

NSAllowsArbitraryLoads

NSAllowsArbitraryLoadsForMedia

NSAllowsArbitraryLoadsInWebContent


This is all related to Apple's new requirements that all connections should be secure. Before that I only had NSAllowsArbitraryLoads in my P list so I tried the above and it stopped the freezes on the iPhone 5 (I get an error event) but I'm still not getting any ads, and now they don't work on the iPad either. It's the same if I use 7.12.1

I'm getting the following error message in Xcode, despite adding the the above to my P list:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
And the following when it tries to display an ad:
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9814)
I'm not sure whether we do really need at least 7.15.0 and that the Gideros Admob plugin isn't compatible with the newer Admob SDK or whether the issue is something else.

Any ideas please, guys?

Comments

  • Still no luck here.

    I've gone through all the Admob documents and all people's issues on StackOverflow. I've gone through all the dependencies several times, including those changed according to the Admob release notes.

    I've also gone into our Admob settings and requested https only.

    Has anyone managed to get Admob working on iOS 10?

    Thanks
  • I retraced my steps and the problem still persists.

    I notice that the error "App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file." only appears after adding the 2 new NSAllows... boolean keys for iOS 10.

    Adding the 2 new keys stops the freeze on the iPhone 5 because we now receive an error event. To clarify, the freeze wasn't a crash but the lack of an event being received from the ad system to allow our game to continue. Also to clarify, that was in relation to interstitials. To clarify further there is a connection with Admob - I get messages in Xcode regarding test ads etc. Everything was fine with iOS 9 and previous versions of Gideros (pre 16.10) and the older versions of the Admob SDK.

    I tried 2 versions of the Admob SDK (7.12.1 bundled with Gideros, and 7.16.0, the latest). No banner or interstitial ads with either.

    @ar2rsawseen Do you think that with the extra ATS exceptions needed for iOS 10 we must use the latest Admob SDK to support iOS 10? If so, is it possible that the Admob plugin isn't compatible with the latest version of Admob?

    Any ideas would be greatly appreciated, thanks.
  • OK, so it wasn't Admob at all, but a periodic connection check we were making that was to http://www.w3schools.com/ (non HTTPS) to check that the internet was available before trying to show ads. X_X

    So the above additions to the plist do work. However, there is not a full exception for HTTP connections (non HTTPS) as there was with iOS 9 (covered by NSAllowsArbitraryLoads). For iOS 10, it appears that you need to specify each non-secure URL, which is why our connection check was failing.

    FYI, Apple have delayed the deadline for secure connections so apps shouldn't get rejected for not having a "valid reason". Although, obviously it would be a good idea to get an SSL certificate ASAP if you need to transmit any data, as we do for some remote configurations.

Sign In or Register to comment.