Issue App Store with deprecated UIwebView API

When uploading my mobiel app to the App Store I receive the message that my has an issue with Deprecated UIWebview API. I can't find which part of my app is causing this issue.


See below the components I'm using in my APP. MyTrainer is the application that takes care of the database on the server side.

Anybody an idea how to tackel this ...???

Hi Stefan,

Not having a solution for you, just background information.

this is not (directly) related to your plugins. It has to do with the fact that Cordova uses the UIWebview as the HTML rendering engine, and that Apple previously announced UIWebView’s deprecation in June 2018. Beginning with iOS 12, they began warning developers about migrating to WKWebView, UIWebView’s successor.

More background info: 

https://cordova.apache.org/news/2018/08/01/future-cordova-ios-webview.html

Even version 5 of cordova does not have WKWeView support, you can read in https://cordova.apache.org/announcements/2019/02/09/cordova-ios-release-5.0.0.html

So this is more a Cordova issue, that could become painful for OutSystems mobile applications.

Wonder if someone from OutSystems Engineering has more information on this topic.

Regards,

Daniel


Daniël Kuhlmann wrote:

Hi Stefan,

Not having a solution for you, just background information.

this is not (directly) related to your plugins. It has to do with the fact that Cordova uses the UIWebview as the HTML rendering engine, and that Apple previously announced UIWebView’s deprecation in June 2018. Beginning with iOS 12, they began warning developers about migrating to WKWebView, UIWebView’s successor.

More background info: 

https://cordova.apache.org/news/2018/08/01/future-cordova-ios-webview.html

Even version 5 of cordova does not have WKWeView support, you can read in https://cordova.apache.org/announcements/2019/02/09/cordova-ios-release-5.0.0.html

So this is more a Cordova issue, that could become painful for OutSystems mobile applications.

Wonder if someone from OutSystems Engineering has more information on this topic.

Regards,

Daniel


Thanks for the clear explanation.


Anybody from Outsystems an advice how to proceed in this matter ...???


Hi,

We just submitted an app to the apple store and we received the same warning, but it did not stoped the review process (we are waiting for the approval)

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.

Our platform version is Version 10.0.1016.0

Was your app approved despite this, Stefan?

Carlos Mendes wrote:

Hi,

We just submitted an app to the apple store and we received the same warning, but it did not stoped the review process (we are waiting for the approval)

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.

Our platform version is Version 10.0.1016.0

Was your app approved despite this, Stefan?

Hi, Carlos!

Was your app get approved?

Thanks!

Marcela.


Hi,

We got the same warning, we're going to submit it for review. Seems like MABS 6.0 will solve this issue: https://success.outsystems.com/Support/Release_Notes/Mobile_Apps_Build_Service/MABS_Version_6.0

Ruben

Good morning. 

We are still getting this warning today when publishing some apps to the app store.

Does anyone have any news regarding this?

Did anyone open an ticket for this for the Outsystems support?


Thanks

Hello, guys,

MABS 6.1 has removed all its references to UIWebView and all supported plugins have followed the same path.

Assuming you are using this MABS version and updated all your supported plugins to the latest versions boasting MABS 6 support (InAppBrowser comes to mind), the only other root-cause for these warnings is other plugins.

Have you checked any of the plugins in use by your apps for references to UIWebView? I reached out to the maintainer of the App Version plugin, and it was recently updated to comply.

Best regards,

Carlos

Hello Carlos


Where do i see if any plugin used in my project it has been updated?


Thank you

Hi we have the same problem, we just updated to Mabs 6.1 and all our plugins. Where could we find the reference to UiWebView? 

Carlos Mendes wrote:

Hi,

We just submitted an app to the apple store and we received the same warning, but it did not stoped the review process (we are waiting for the approval)

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.

Our platform version is Version 10.0.1016.0

Was your app approved despite this, Stefan?

Yes, mine got approved without issues.


I am having the same issues. Today, on submission, I received the message that references to UIWebview were no longer allowed. I updated all supported plugins and used MABS 6.1, but I am still getting this warning. How do I find out which plugins could have references to UIWebview?

I'm sitting with the same issue, how can i detemine which plugins are using the UIWebView?

I checked all my plugins to see if they use iOS source code (through the extensibility configurations, then check the github iOS source code for the plugin). None of my plugins that use a Cordova plugin seem to have a reference to UIWebView. But I am still being flagged by Apple. If I scan my .ipa binary that I submit, I indeed see references to UIWebView, but I cannot see where they are coming from as it is a binary format. Outsystems engineering, could you please elaborate? I do see that even version 2.3.0 of InAppBrowser has UIWebView references, although the compiler may take care of that? Not sure...

Denis Mulder wrote:

I checked all my plugins to see if they use iOS source code (through the extensibility configurations, then check the github iOS source code for the plugin). None of my plugins that use a Cordova plugin seem to have a reference to UIWebView. But I am still being flagged by Apple. If I scan my .ipa binary that I submit, I indeed see references to UIWebView, but I cannot see where they are coming from as it is a binary format. Outsystems engineering, could you please elaborate? I do see that even version 2.3.0 of InAppBrowser has UIWebView references, although the compiler may take care of that? Not sure...

We have exactly the same issue with our App. Is there some way to determine where these UIwebview references are coming from? We have also updated everything we could find, but the issue persists. 


I'm getting the same problem from Apple analysis. I revised all those plugins and didn't find anything related. No clue what and where I can look at.


ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).


Cordova Plugins in my mobile built

Applying plugins in the config.xml file...
Plugin Id: https://github.com/cmateustechy/cordova-plugin-ios-bluetooth-permissions.git
Plugin Id: https://github.com/OutSystems/csZBar.git#v1.3.3-OS10
Plugin Id: https://github.com/OutSystems/cordova-plugin-geolocation.git#4.0.1-OS2
Plugin Id: https://github.com/katzer/cordova-plugin-background-mode.git#0.7.3
Plugin Id: https://github.com/evothings/cordova-eddystone#1.3.0
Plugin Id: https://github.com/OutSystems/phonegap-nfc.git

I finally found out that in my case, the two UIWebView issues were with the "PDF Generator" and "File-Viewer" components/plugins. The latter one was pointed out by Outsystems Support and now has a new version that resolves the issue. I guess the only way to find out is to open all your Cordova based components, look at the extensibility configuration to find the GitHub link, look at the iOS source code and search for "UIWebView" in the iOS .m files to see if they are compliant or not.

Thanks Denis

That's i'm still investing and also open a support case to help me out.

And nothing found that can impose this issue.


Still looking for but nothing yet.

Solution

Hello all,

Basically, since 30th April, Apple is no longer accepting mobile applications for revision with references for the UIWebView API and they should use WKWebView API instead.


What you should do?

1) You should check in the Forge for a new version of the plugins that you use in your application and update them. There are already new versions that solve this issue and replace the usage of UIWebView with WKWebView.

Examples:
File Viewer Plugin (1.0.3) - https://www.outsystems.com/forge/component-overview/1606/file-viewer-plugin
App Version Plugin (2.1.1) - https://www.outsystems.com/forge/component-overview/2913/app-version-plugin


2) If this doesn't solve your problem, then you can search for these references directly in the source code of the plugin. In order to do that, you need to:

  • Open your plugin module in Service Studio;
  • Go into Extensibility configurations and find the link for GitHub repository of that plugin (example https://github.com/OutSystemsExperts/File-Viewer-Plugin.git#1.1.1);
  • Open that link in the browser, open the iOS mobile files (.m extension) in Notepad and search for the text "UIWebView". If you find any reference, that plugin is probably beeing marked as non-compliant.

If this is your case, you can try to reach out that plugin's developer in order to upload a newer version without UIWebView API references or you can find another plugin or component for the same purpose that is compliant.

Examples:
Decimal Keyboard Plugin non-compliant: https://github.com/mrchandoo/cordova-plugin-decimal-keyboard
Decimal Keyboard Plugin compliant: https://github.com/MaximBelov/cordova-plugin-decimal-keyboard-wkwebview


3) Last case scenario, you may open a support case and OutSystems will help you to find out which components are non-compliant.


According to my research, these are some plugins that I already know if they are compliant or not. Please consider last version of the plugin for OS11:

  • OS supported plugins (Common Plugin, TouchID Plugin, InAppBrowser Plugin, Key Store Plugin, Location Plugin, etc.): compliant
  • Android Permissions Plugin: compliant
  • File Plugin: compliant
  • File Transfer Plugin: compliant
  • File Viewer Plugin: compliant
  • App Version Plugin: compliant
  • Privacy Screen Plugin: compliant
  • Screen Orientation Plugin: compliant
  • Social Sharing Plugin: compliant
  • PDF Generator Plugin: non-compliant


Kind regards,

Rui Barradas

Solution