Cordova-plugin-wkwebview-engine crashes ios build : duplicated symbols

Hello! Since UIWebView is being deprecated and that cordova ios 6 is still under night builds, I am trying to completely move an ionic cordova app to use WKWebView.

I did follow this tutorial:

I am using cordova ios 5.1.1

Here is the list of the cordova plugins I currently have installed in the project:

accuv-call-push-monitor 1.0.0 "AccuvCallPushMonitor"
cordova-android-support-gradle-release 3.0.1 "cordova-android-support-gradle-release"
cordova-custom-config 5.1.0 "cordova-custom-config"
cordova-plugin-android-permissions 1.0.2 "Permissions"
cordova-plugin-app-update 2.0.2 "AppUpdate"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-appcenter-analytics 0.1.9 "App Center Analytics for Cordova"
cordova-plugin-appcenter-crashes 0.1.9 "App Center Crashes for Cordova"
cordova-plugin-appcenter-push 0.1.9 "App Center Push for Cordova"
cordova-plugin-appcenter-shared 0.1.9 "App Center shared code for Cordova"
cordova-plugin-appversion 1.0.0 "App Version"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-certificates 0.6.4 "Certificate Plugin"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-customurlscheme 4.4.0 "Custom URL scheme"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-file-opener2 2.2.1 "File Opener2"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-geolocation 4.0.2 "Geolocation"
cordova-plugin-inappbrowser 3.2.0 "InAppBrowser"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-media 5.0.3 "Media"
cordova-plugin-opentok 3.4.3 "OpenTokCordovaPlugin"
cordova-plugin-printer 0.7.3 "Printer"
cordova-plugin-request-location-accuracy 2.3.0 "Request Location Accuracy"
cordova-plugin-screen-orientation 3.0.2 "Screen Orientation"
cordova-plugin-speechrecognition 1.1.2 "Speech Recognition"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-video-capture-plus 1.0.0 "VideoCapturePlus"
cordova-plugin-video-editor 1.1.3 "VideoEditor"
cordova-plugin-voippush 0.0.1 "VoipPush"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-plugin-wkwebview-engine 1.2.1 "Cordova WKWebView Engine"
cordova-plugin-x-toast 2.7.2 "Toast"
cordova-support-google-services 1.3.1 "cordova-support-google-services"
cordova.plugins.diagnostic 4.0.12 "Diagnostic"
ionic-plugin-keyboard 2.2.1 "Keyboard"
phonegap-plugin-barcodescanner 7.1.2 "BarcodeScanner"
phonegap-plugin-push 2.2.3 "PushPlugin"

I also did update the config.xml file to use only WKWebView:

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

I then entered the following commands:

ionic build;
ionic cordova platform add ios;
ionic cordova prepare;
ionic cordova build ios;

I then get the following:


The following build commands failed:
	Ld /Users/vittoriopassuello-dussault/Library/Developer/Xcode/DerivedData/AccuV-afsbvdwyobxxpmfpiryucawybsqq/Build/Intermediates.noindex/ArchiveIntermediates/AccuV/InstallationBuildProductsLocation/Applications/ normal arm64
(1 failure)
xcodebuild: Command failed with exit code 65

When I open the project in XCode, and try to build, I get this error:

14 duplicate symbols for architecture arm64

I figured out that this plugin could also use libraries used by the cordova-plugin-ionic-webview hence this issue.

I was wondering if anyone have been able to actually get rid of UIWebView in favour of WKWebView. There is no sign of a cordova ios 6 release date and we are kind of stressing out.

Thank you for your support!


I installed the following plugin

cordova plugin add cordova-plugin-wkwebview-file-xhr

And now I am getting this error

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_CDVWKProcessPoolFactory", referenced from:
      objc-class-ref in CDVWKInAppBrowser.o

It seems like cordova ios 5.1.1 already makes the macro check to see if we only want to use WKWebView only:
Screen Shot 2020-05-28 at 10.02.38 AM

I however get a white screen with no visible error! I will update this post if I find anything


So I got a working build, but it seems like the inappbrowser plugin is not found:

2020-05-28 15:41:38.718084-0400 AccuV[13713:2610424] CDVPlugin class CDVUIInAppBrowser (pluginName: uiinappbrowser) does not exist.
2020-05-28 15:41:38.718105-0400 AccuV[13713:2610424] [CDVTimer][uiinappbrowser] 0.030041ms
2020-05-28 15:41:38.718149-0400 AccuV[13713:2610424] [CDVTimer][wkinappbrowser] 0.025988ms
2020-05-28 15:41:38.718244-0400 AccuV[13713:2610424] CDVIonicKeyboard: resize mode 1
2020-05-28 15:41:38.718635-0400 AccuV[13713:2610424] [CDVTimer][cdvionickeyboard] 0.453949ms
2020-05-28 15:41:38.719757-0400 AccuV[13713:2610424] [CDVTimer][statusbar] 1.073003ms
2020-05-28 15:41:38.719794-0400 AccuV[13713:2610424] [CDVTimer][TotalPluginStartup] 63.789010ms
2020-05-28 15:41:38.826413-0400 AccuV[13713:2610424] IAB.close() called but it was already closed.
2020-05-28 15:41:41.208853-0400 AccuV[13713:2610424] Ionic Native: deviceready event fired after 1987 ms
2020-05-28 15:41:41.216737-0400 AccuV[13713:2610424] App version:2.1.0

I guess it is normal that uiinappbrowser is not found, since it is replaced by wkinappbrowser. Does that make any sense?