In the release notes of cordova-android 6.3.0 (https://cordova.apache.org/announcements/2017/09/27/android-release.html) it's written down that cordova-plugin-compat
has to be removed
If I try
cordova plugin rm cordova-plugin-compat
I get following error
[ERROR] An error occurred while running cordova plugin remove cordova-plugin-compat --save (exit code 1):
Error: The plugin ‘cordova-plugin-compat’ is required by (cordova-plugin-calendar, cordova-plugin-camera, cordova-plugin-file, cordova-plugin-geolocation), skipping uninstallation. (try --force if trying to update)
If I then try to --force
the remove, it works, the plugin is removed and I'm able to build my android app.
BUT, I just removed my iOS
platform to add it again and I face now the error
cordova prepare ios Error: Cannot find plugin.xml for plugin "cordova-plugin-compat". Please try adding it again.
[ERROR] An error occurred while running cordova prepare ios (exit code 1).
Any idea what am I doing wrong? Should really cordova-plugin-compat
be removed? Why my iOS platform is referencing it, I thought it was only for android?
I use cordova-android@6.3.0 and cordova-ios@4.5.1
P.S.: If I remove and add the iOS platform, the compat plugin is automatically added as reference in package.json and package-lock.json
UPDATE
The last plugin release (https://cordova.apache.org/news/2017/11/10/plugins-release.html) most probably solve this issue respectively it looks like that the problem was the reference to the cordova-plugin-compat
plugin from other plugin. But,
I'm not yet able to totally test it and solve it because I'm using another plugin where compat is also referenced (https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/issues/426).
I will keep this thread open till I could 100% confirm that this solve the referencing of compat.
FINAL UPDATE
The PR to remove the dependency from Calendar-PhoneGap-Plugin
to ‘cordova-plugin-compat’ went thru, I was able to remove this last plugin without "force"
The source of the problem was that plugins were directly referencing cordova-plugin-compat
.
Therefore, even if the use of the plugin was deprecated, it was still needed. Forcing a deletion (using --force) wasn't a solution, because if I removed and added a platform again, then, because of these references, the plugin ‘cordova-plugin-compat’ was automatically added again during that process.
The solution of the problem was then to wait for new releases or to submit PR to remove the dependency.
In my case there were the plugins which were referencing cordova-plugin-compat
:
Error: The plugin ‘cordova-plugin-compat’ is required by (cordova-plugin-calendar, cordova-plugin-camera, cordova-plugin-file, cordova-plugin-geolocation), skipping uninstallation. (try --force if trying to update)
Updating following plugins solved my issue:
cordova-plugin-camera@3.0.0
, cordova-plugin-file@5.0.0
and cordova-plugin-geolocation@3.0.0
removed the dependency (see https://cordova.apache.org/news/2017/11/10/plugins-release.html)
cordova-plugin-calendar@5.0.0
removed the dependency thru this PR
https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/pull/430