apache / cordova-ios

Apache Cordova iOS
https://cordova.apache.org/
Apache License 2.0
2.15k stars 987 forks source link

Updating to cordova-ios 6.2.0 breaks iOS build #1141

Open davidmau opened 2 years ago

davidmau commented 2 years ago

Issue Type

Description

I recently upgraded to cordova-ios 6.2.0. After dealing with a lot of other incompatibilities I got to the point where running 'cordova build ios' resulted in an error which is basically that the file CDVWebViewProcessPoolFactory.m cannot be found. Same error reported when building in Xcode.

Information

If I understand recent developments (eg moving to 6.x.x), the WebView functionality was moved from cordova-plugin-wkwebview-engine into cordova-ios, specifically into Cordova.lib/Classes. However, the build seems to be looking in my project under platforms/ios/CordovaLib/Classes/Private/Plugins/CDVWebViewEngine, whereas CDVWebViewProcessPoolFactory.m is in the Public directory.

I read in another thread that changing the WebView plugin from Private to Public was a solution. Is this true? If so, how do I do that? This seems kludgy - are there better solutions?

Update Very similar (but not a duplicate) to https://github.com/apache/cordova-ios/issues/1124#issue-931340724. The solution there was to remove another webview-related plugin. So I tried removing the @globules-io/cordova-plugin-ios-xhr plugin (which has the description "Cordova WKWebView File XHR Plugin") but that made no difference. Which raises another question - do I need the @globules-io/cordova-plugin-ios-xhr plugin?

Update Running the build on a device or on the simulator yields the same error.

Update The problem seems to have originated with https://github.com/apache/cordova-ios/pull/1031#issue-527456480 (and subsequent pull) where the CDVWebViewProcessPoolFactory.m file was changed from private to public. Ok. So how do I tell cordova/xcode that the file is now public.

Command or Code

cordova build ios

Version information

Installed platforms: android 9.0.0 ios 6.2.0

@globules-io/cordova-plugin-ios-xhr 1.2.1 "Cordova WKWebView File XHR Plugin" @havesource/cordova-plugin-push 2.0.0 "Cordova Push Plugin" cordova-plugin-device 2.0.2 "Device" cordova-plugin-firebasex 13.0.1 "Google Firebase Plugin" cordova-plugin-keyboard 1.2.0 "Keyboard" cordova-plugin-network-information 2.0.1 "Network Information" cordova-plugin-statusbar 2.4.3 "StatusBar" cordova-plugin-whitelist 1.2.2 "Whitelist" cordova-support-google-services 1.2.0 "cordova-support-google-services"

Checklist