IONIC/ ITMS-90809: Deprecated API Usage

Dear Ionic team,

I’m facing this problem when upload to IOS store. Pls guide me to pass it

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).

Maybe you should google 2 Minutes before asking:

yeah. i have tried follow this guide already. But still fail

You need to understand why this happens. This happens because somewhere in your App the old “UiWebView” is included. Are you using Capacitor or Cordova-ios@5.1.1 with the WKWebViewOnly flag? Then the Framework isn’t the Problem. But the WebView can be used from Plugins too, so try the following:

After the iOS Build, open the xCode Project and search for Text Occurrences of UiWebView.

1 Like

Hi [EinfachHans]

I’m using Cordova 9.0.0 (cordova-lib@9.0.1).
And i have search Text UiWebView. Found 128 references.
Could u provide some solutions?

Are you using Cordova-ios Version >=5.1.x ? Have you included <preference name="WKWebViewOnly" value="true" /> in your config.xml?

Yep. i’m using “cordova-ios”: “^5.1.1”,
And inculed <preference name="WKWebViewOnly" value="true" /> in config.xml already

But still got this problem

Where are the References at? In which Plugin Files?

Hi, Have you solved the issue? I’m facing same :frowning:

Hi all,

We recently updated our blog post which is the definitive source for this issue. There are steps in that post that should help you figure out exactly where lingering UIWebView references are hiding:

4 Likes

Sorry,
I have an issue during ios build

[error] Error: Call retries were exceeded
    at ChildProcessWorker.initialize (/Users/Shared/projects/ionic5/appname/node_modules/jest-worker/build/workers/ChildProcessWorker.js:191:21)
    at ChildProcessWorker._onExit (/Users/Shared/projects/ionic5/appname/node_modules/jest-worker/build/workers/ChildProcessWorker.js:268:12)
    at ChildProcess.emit (events.js:311:20)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)

/private/var/folders/_z/mm700wc13hvbh8pgvy9n4y300000gn/T/ng-BPgwm2/angular-errors.log (END)
cordova plugin add cordova-plugin-ionic-webview@latest

npm install @ionic-native/ionic-webview

<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">`
     <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

Could you please help me?

Luca

Anyone get the any specific solutions for this ?
I am also facing the same issue while doing live the app.

Configuration:
iOS : 4.5.5

Ionic :

Ionic CLI : 5.4.16 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.1

Cordova :

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

can anyone help me out from this issue ?

ITMS-90809: Deprecated API Usage** - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (Apple Developer Documentation).

Package.json

“dependencies”: {
@angular/common”: “~8.1.2”,
@angular/compiler”: “~8.1.2”,
@angular/core”: “~8.1.2”,
@angular/forms”: “~8.1.2”,
@angular/platform-browser”: “~8.1.2”,
@angular/platform-browser-dynamic”: “~8.1.2”,
@angular/router”: “~8.1.2”,
@ionic-native/app-version”: “^5.27.0”,
@ionic-native/core”: “^5.14.0”,
@ionic-native/geolocation”: “^5.14.0”,
@ionic-native/ionic-webview”: “^5.34.0”,
@ionic-native/native-geocoder”: “^5.14.0”,
@ionic-native/onesignal”: “^5.18.0”,
@ionic-native/paypal”: “^5.28.0”,
@ionic-native/photo-viewer”: “^5.29.0”,
@ionic-native/sms-retriever”: “^5.27.0”,
@ionic-native/splash-screen”: “^5.0.0”,
@ionic-native/status-bar”: “^5.0.0”,
@ionic-native/stripe”: “^5.28.0”,
@ionic/angular”: “^4.7.1”,
“card.io.cordova.mobilesdk”: “^2.1.0”,
“com.paypal.cordova.mobilesdk”: “^3.5.0”,
“com.razorpay.cordova”: “^1.4.9”,
“cordova-browser”: “^5.0.4”,
“cordova-plugin-add-swift-support”: “2.0.2”,
“cordova-plugin-app-version”: “^0.1.9”,
“cordova-plugin-cocoapod-support”: “^1.6.2”,
“cordova-plugin-device”: “^2.0.2”,
“cordova-plugin-geolocation”: “^4.0.2”,
“cordova-plugin-ionic-keyboard”: “^2.2.0”,
“cordova-plugin-nativegeocoder”: “^3.2.2”,
“cordova-plugin-sms-retriever-manager”: “^1.0.2”,
“cordova-plugin-splashscreen”: “^5.0.2”,
“cordova-plugin-statusbar”: “^2.4.2”,
“cordova-plugin-stripe”: “^1.5.3”,
“cordova-plugin-whitelist”: “^1.3.3”,
“core-js”: “^2.5.4”,
“onesignal-cordova-plugin”: “2.8.0”,
“rxjs”: “~6.5.1”,
“rxjs-compat”: “^6.5.4”,
“tslib”: “^1.9.0”,
“zone.js”: “~0.9.1”
},
“devDependencies”: {
@angular-devkit/architect”: “~0.801.2”,
@angular-devkit/build-angular”: “~0.801.2”,
@angular-devkit/core”: “~8.1.2”,
@angular-devkit/schematics”: “~8.1.2”,
@angular/cli”: “~8.1.2”,
@angular/compiler”: “~8.1.2”,
@angular/compiler-cli”: “~8.1.2”,
@angular/language-service”: “~8.1.2”,
@ionic/angular-toolkit”: “~2.0.0”,
@ionic/lab”: “2.0.11”,
@types/jasmine”: “~3.3.8”,
@types/jasminewd2”: “~2.0.3”,
@types/node”: “~8.9.4”,
“codelyzer”: “^5.0.0”,
“com-sarriaroman-photoviewer”: “^1.2.5”,
“cordova-android”: “^7.1.4”,
“cordova-ios”: “^5.1.1”,
“cordova-plugin-ionic-webview”: “^5.0.0”,
“jasmine-core”: “~3.4.0”,
“jasmine-spec-reporter”: “~4.2.1”,
“karma”: “~4.1.0”,
“karma-chrome-launcher”: “~2.2.0”,
“karma-coverage-istanbul-reporter”: “~2.0.1”,
“karma-jasmine”: “~2.0.1”,
“karma-jasmine-html-reporter”: “^1.4.0”,
“protractor”: “~5.4.0”,
“ts-node”: “~7.0.0”,
“tslint”: “~5.15.0”,
“typescript”: “~3.4.3”
},
“description”: “An Ionic project”,
“cordova”: {
“plugins”: {
“cordova-plugin-whitelist”: {},
“cordova-plugin-statusbar”: {},
“cordova-plugin-device”: {},
“cordova-plugin-splashscreen”: {},
“cordova-plugin-ionic-keyboard”: {},
“cordova-plugin-nativegeocoder”: {
“LOCATION_WHEN_IN_USE_DESCRIPTION”: “Use geocoder service”
},
“cordova-plugin-sms-retriever-manager”: {
“PLAY_SERVICES_VERSION”: “15.0.1”
},
“cordova-plugin-ionic-webview”: {},
“cordova-plugin-app-version”: {},
“cordova-plugin-geolocation”: {
“GEOLOCATION_USAGE_DESCRIPTION”: “We need your location for display nearest store.”,
“GPS_REQUIRED”: “true”
},
“com.razorpay.cordova”: {},
“com.paypal.cordova.mobilesdk”: {},
“cordova-plugin-stripe”: {},
“com-sarriaroman-photoviewer”: {}
},
“platforms”: [
“android”,
“browser”,
“ios”
]

Config.xml

We use your location for full functionality of certain app features.

Please help me out. I’m looking for 1 month but not a get solution.

Thanks.

If you read the article Max provided, there is a list of Cordova plugins that use UIWebView

In that list you can see com.paypal.cordova.mobilesdk, which is in your plugin list too.

@jcesarmobile Thank you so much. I have resolved the issue.