D.Hodges
D.Hodges

Reputation: 2107

Which cordova plugins are causing my app rejection in Apple store

I've updated all of my plugins but I keep getting ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView

  "dependencies": {
    "@angular/common": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/fire": "^5.4.2",
    "@angular/forms": "~8.2.14",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/diagnostic": "^5.26.0",
    "@ionic-native/geolocation": "^5.23.0",
    "@ionic-native/google-plus": "^5.30.0",
    "@ionic-native/image-picker": "^5.32.0",
    "@ionic-native/ionic-webview": "^5.22.0-beta-1",
    "@ionic-native/splash-screen": "^5.32.0",
    "@ionic-native/status-bar": "^5.32.0",
    "@ionic/angular": "^5.0.0",
    "@ionic/storage": "2.2.0",
    "cc.fovea.cordova.purchase": "^10.1.1",
    "cordova-android-support-gradle-release": "^3.0.1",
    "cordova-ios": "^5.1.1",
    "cordova-plugin-androidx": "^3.0.0",
    "cordova-plugin-androidx-adapter": "^1.1.3",
    "cordova-plugin-device": "^2.0.3",
    "cordova-plugin-firebase-analytics": "^5.0.0",
    "cordova-plugin-firebase-messaging": "^5.0.1",
    "cordova-plugin-geolocation": "^4.1.0",
    "cordova-plugin-googleplus": "^7.0.1",
    "cordova-plugin-inappbrowser": "^3.2.0",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^5.0.0",
    "cordova-plugin-splashscreen": "^6.0.0",
    "cordova-plugin-statusbar": "^2.4.3",
    "cordova-plugin-telerik-imagepicker": "^2.3.6",
    "cordova-plugin-whitelist": "^1.3.4",
    "cordova-sqlite-storage": "^5.1.0",
    "cordova-support-android-plugin": "^1.0.2",
    "cordova-support-google-services": "^1.4.1",
    "cordova.plugins.diagnostic": "^5.0.2",
    "core-js": "^2.5.4",
    "firebase": "^7.9.1",
    "geofire": "^5.0.1",
    "geofirex": "^0.1.0",
    "ionicons": "^4.5.10-0",
    "moment": "^2.24.0",
    "rxjs": "~6.5.1",
    "rxjs-compat": "^6.5.5",
    "tslib": "^1.9.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.20",
    "@angular/cli": "~8.3.23",
    "@angular/compiler": "~8.2.14",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@ionic/angular-toolkit": "^2.1.1",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "^5.0.0",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-splashscreen": "^6.0.0",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "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"
  },

When I search in xCode for UIWebView I don't get any references but what I do get are some classes that has it in the name:

CDVUIInAppBrowser

- (BOOL)webView:(WKWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{

I've upgraded InAppBrowser to the latest version

I'm not familiar with this plugin CDVUIWebViewEngine

#import <Cordova/CDVPlugin.h>
#import <Cordova/CDVWebViewEngineProtocol.h>

@interface CDVUIWebViewEngine : CDVPlugin <CDVWebViewEngineProtocol>

#if !WK_WEB_VIEW_ONLY
@property (nonatomic, strong, readonly) id <UIWebViewDelegate> uiWebViewDelegate;
#endif

@end

#if !WK_WEB_VIEW_ONLY

#import <UIKit/UIKit.h>
#import <Cordova/CDVAvailability.h>

/**
 * Distinguishes top-level navigations from sub-frame navigations.
 * shouldStartLoadWithRequest is called for every request, but didStartLoad
 * and didFinishLoad is called only for top-level navigations.
 * Relevant bug: CB-2389
 */
@interface CDVUIWebViewDelegate : NSObject <UIWebViewDelegate>{
    __weak NSObject <UIWebViewDelegate>* _delegate;
    NSInteger _loadCount;
    NSInteger _state;
    NSInteger _curLoadToken;
    NSInteger _loadStartPollCount;
}

#if !WK_WEB_VIEW_ONLY

#import <UIKit/UIKit.h>
#import "CDVUIWebViewEngine.h"

@interface CDVUIWebViewNavigationDelegate : NSObject <UIWebViewDelegate>

@interface CDVLocalStorage ()

@property (nonatomic, readwrite, strong) NSMutableArray* backupInfo;  // array of CDVBackupInfo objects
#if !WK_WEB_VIEW_ONLY
@property (nonatomic, readwrite, weak) id <UIWebViewDelegate> webviewDelegate;
#endif

These classes don't even appear to be using UIWebView, they just have a variable containing the name.

#if WK_WEB_VIEW_ONLY
#define CDVWebViewNavigationType int
#else
#define CDVWebViewNavigationType UIWebViewNavigationType
#endif

#import <UIKit/UIKit.h>

#define kCDVWebViewEngineScriptMessageHandlers @"kCDVWebViewEngineScriptMessageHandlers"
#define kCDVWebViewEngineUIWebViewDelegate @"kCDVWebViewEngineUIWebViewDelegate"

I'm stuck at this point. I've upgraded cordova-ios version. I've ugraded the plugins. I've removed and re-added ios platform. Please help.

i'm using 9.0.0 ([email protected])

Upvotes: 0

Views: 532

Answers (0)

Related Questions