[March 2020] ITMS-90809: Deprecated API Usage

I just uploaded a build of one of my apps to the app store and I got this message in my email:

Dear Developer,

We identified one or more issues with a recent delivery for your app, “Zynect Sensors” 1.0.6 (1.0.6). Your delivery was successful, but you may wish to correct the following issues in your next delivery:

ITMS-90809: Deprecated API Usage -
Apple will stop accepting submissions of new apps that use UIWebView APIs starting from April 2020. See https://developer.apple.com/documentation/uikit/uiwebview for more information.

After you’ve corrected the issues, you can upload a new binary to App Store Connect.

Best regards,

The App Store Team

I got this last time I uploaded as well, a couple months ago, and at the time I googled and I’m pretty sure I came across this Stackoverflow post: https://stackoverflow.com/questions/58619242/error-ionic-4-itms-90809-deprecated-api-usage-apple-will-stop-accepting-submi and implemented the guidance therein. Namely,

  1. I added the <preference name="WKWebViewOnly" value="true" /> as an element nested under the <widget> element in config.xml after all the other <preference> elements already in config.xml.
  2. I checked and npm ls cordova-ios shows @5.1.1 and cordova --version indicates @9.0.0 both of which are the latest releases available according to npm at the time of this post.
  3. I ran cordova prepare ios and didn’t see any warnings or errors.

So… April is fast approaching and I’m starting to get concerned that I’m going to be hosed by this. What might I be doing wrong, and how can I check that the right things have happened before I next submit my app to Apple?

Might one of my plugins be causing this? The only one I can think of that could be implicated, I suppose, is cordova-plugin-googleplus which I use to allow my users to sign in with Google, but to be honest, I have no idea. This issue on that repository would sort of suggest that is the case.

Try removing the iOS platform and re-adding.

ionic cordova platform rm ios
ionic cordova platform add ios

I updated the cordova-plugin-googleplus from 8.2.0 to 8.4.0, removed plugins and ios platform, and reinstalled ios platform … now I’m getting the following three build failures:

  1. Property 'presentingViewController' not found on object of type GIDSignin *'
  2. No visible @interface for 'GIDSignIn' declares the selector 'handleURL:' GooglePlus.m
  3. No visible @interface for 'GIDSignIn' declares the selector 'restorePreviousSignin' GooglePlus.m

Just following up here to close the loop, I think I’ve solved it and (as reported back in the Git-Hub issue, here’s my narrative):

Actually it appears as though the patch above has been applied in 8.4.0 of this plugin… I was running 8.2.0

I updated the cordova-plugin-googleplus from 8.2.0 to 8.4.0, removed plugins and ios platform, and reinstalled ios platform … now I’m getting the following three build failures:

  1. Property ‘presentingViewController’ not found on object of type GIDSignin *’
  2. No visible @interface for ‘GIDSignIn’ declares the selector ‘handleURL:’ GooglePlus.m
  3. No visible @interface for ‘GIDSignIn’ declares the selector ‘restorePreviousSignin’ GooglePlus.m

Clearly the problem is, even after I pod repo update && rm -rf platforms/ios && rm -rf plugins && ionic cordova platform add ios && ionic cordova platform prepare ios … if I then cd platforms/ios && pod dependencies I get GoogleSignIn (4.4.0) listed… which should be 5.0.2 according to what I see in node_modules/cordova-plugin-googleplus/plugin.xml … so why does pod dependencies not realize that?

Found it, config.xml also needed a line updated <pod name="GoogleSignIn" version="5.0.2"/>

I won’t know for sure until the next time I submit an update to Apple, but I think it should be good.

3 Likes
  1. run cordova plugin add cordova-plugin-wkwebview-engine
  2. add to config.xml
  1. detele node_modules , then reinstall by run yarn or npm install
  2. run ionic cordova platform rm ios
  3. run ionic cordova platform add ios@latest
  4. run ionic cordova build ios