App Store Connect warning: UIWebView API deprecation

So is capacitor going to be updated sooner than cordova and comply with apples warning? Currently moving my ionic3 application which has a year+ development invested into it would be a huge task so I am trying to work out the pros and cons.

This still wont fix your issue as UiWebView is used in cordova-ios which is what the ios platform for ionic 3 is based on, until cordova update this with a new version and omit the references the warning will not go away.

My Ionic Info
Ionic:

ionic (Ionic CLI) : 4.10.3 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.4.0
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.2.4
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.4.1

Cordova:

cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : android 7.1.4, ios 4.5.5
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 10 other plugins)

System:

ios-deploy : 1.9.4
ios-sim : 8.0.0
NodeJS : v10.15.3 (/usr/local/bin/node)
npm : 6.4.1
OS : macOS High Sierra
Xcode : Xcode 10.1 Build version 10B61

The Problem is we can not test whether warning will come or not?
That will show once it will upload to TestFlight and repeatedly uploading .ipa with warning may be rejected.

@OmDIonic Apple is just searching for UIWebView text on the app, so as long as you use Cordova you’ll get the warning because cordova-ios has a lot of UIWebView references. It doesn’t matter if you use UIWebView or not, they will warn you anyway. But you are wrong about receiving too much warnings will lead to a rejection, some day (unknown day for now, could be in a few months or in a year) Apple will change the warning to a rejection for all developers, it won’t matter if you received previous warnings or not. We have asked Apple for an official date, but they have not answered yet, once we know we will make an official statement, please, stop spamming the issue and scaring people.

@Munn yes, Capacitor will be updated soon and we will release a new version, probably next week, with the few UIWebView references removed. I can’t officially give you a cordova-ios release date, but next major was planned for March of next year, so unless Apple gives an official deadline date that is previous to that planned release date that speed things up, there won’t be an update with fixes anytime soon.
But you can use Capacitor with Ionic 3, Capacitor works with any framework or no framework at all.

3 Likes

Ok I may be wrong.
If you have any official link that states that w ITMS-90809: Deprecated API Usage warning will not reject ionic-ios app then let me know.
Till time I accepting your words as solution for issue.

Ok so I have come up with a POTENTIAL quicker fix than waiting on cordova to fix their cordova-ios plugin.

Please note this is is a very specific use case for my project so may not help everyone.

My Ionic Info (this is an ionic 3 project)

Ionic:

   ionic (Ionic CLI)  : 4.12.0
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : android 7.0.0, browser 5.0.4, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic-webview 2.4.1, (and 16 other plugins)

Things to note

  1. I am guessing that Ionic are more than likely going to update capacitor much quicker than cordova (hopefully within the next few weeks as opposed to cordova which will be months away probably in their next major release march next year).

  2. I have accepted the fact that if i switch to capacitor instead of cordova then I am using two major bridging systems rather than just one (cordova)

With the above out the way I have spent the day converting my IOS build to use capacitor and have left my webapp / android build using cordova as normal.

A few things i had to do first was run ionic integrations enable capacitor

Run through this page to do the migration:
https://capacitor.ionicframework.com/docs/cordova/migrating-from-cordova-to-capacitor/

I had a few other things I had to play around with and had to add some extra CORS configurations on my backend server but after a few hours managed to get my ios app up and running using capacitor.

I still need to convert some of the cordova plugins which still reference UiWebView over to the capacitor equivalents but so far so good.

This may not be feasible for everyone but for now I feel i’m in a better position than I was yesterday.

Thanks to @jcesarmobile for the heads up that capacitor runs in any framework and alongside cordova.

1 Like

so, for now the only “solution” is migrate Ionic app from Cordova to Capacitor??? Really??

No. Just keep calm and wait for more information. Apple will communicate before rejecting apps. Cordova developers are working on a solution.

1 Like

Hi Derman I mentioned this was a fix for my use case, I have a client that is not willing to wait on cordova and wants a fix as soon as possible, this is a solution for me, if it was a personal app of mine I would likely wait on cordova. As people have already noted your app is not likely to be rejected straight away and cordova are working on a fix.

1 Like

Capacitor 1.2.0 was just released with the UIWebView code removed. But make sure you don’t have cordova plugins installed that have UIWebView code on it.

For cordova-ios status you can check this thread where different approaches are being discussed. https://github.com/apache/cordova-discuss/pull/110

2 Likes

Hi everyone, never fear! The Ionic team has put together a blog post that covers everything you need to do in detail. For most apps, there’s just a handful of steps to follow (covering both Cordova and Capacitor).

Ionic community members, customers, and Ionic team members have all submitted updated apps to the App Store successfully. Check out the blog. :grinning:

5 Likes

Hi everyone, I putted my solution here in a blog post that covers everything in detail

hi netkow please provide full tutorials for ionic developer our app 4 times rejected from app store with this warning message.please mantion with all dependecy and all removal of previous dependency.there is no official documents for use wkwebview directly.i uses your ionic webview latest verison ionic webview plugin latest version but nothing happens. if you head of ionic team then why you not directly contact to apple team and make changes and provide inofrmation becuase its become 1 month our client affected our company afffected

As we shared in the post, Apple is not rejecting apps that use these APIs. Are you certain there aren’t other issues causing rejection? Unless something has changed, your app should be ok. Can you post a screenshot of all the warnings/errors you are seeing?

(Also, the link to your blog post is broken, FYI)

I got this mail each submission

Dear Developer,

We identified one or more issues with a recent delivery for your app, “ABCD” 1.0 (1.14). 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 apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.

After you???ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect.

Best regards,

The App Store Team

I read your post 100 times you talking about update all version i updated.but when i search after build the keyword UIWEBVIew its founded never gone. i also console in my app its using wkwebview but why apple sending this warning mail.

in the end of post you talking about capacitor . I added in my project and follow all instruction synch my project then making build from android studio for android and x code for ios.then after i submit app again then i got this mail again what happend to ionic team ?

please help i never saw ionic team ,flutter tem,react native team never responding we are developer facing because our app in appstore and i never wanna lose our clients

1 Like

OK, thank you. This is just a warning - your apps aren’t being rejected. As it says - “Your delivery was successful.” We don’t know when Apple will reject apps (maybe never!) but we’ll update the blog post when we know more.

If you’re using Cordova in any fashion, you will still see this message (cordova-ios and other cordova plugins will generate the warning). The Cordova team is separate from Ionic, so you’ll have to be patient while they sort things out first.

Capacitor should be ok (but again, if there are Cordova plugins, it might happen). If you think there’s still an issue, please log one here.

1 Like

I converted my whole app in capacitor its easy man.without cordova we make it.proud to be ionic developer.

1 Like

If you don’t have many plugins that might be easy. For complex apps with 30 plugins we need support for Cordova to get this done until apps get rejected.

but you try with capacitor i do it in only 2 days.