Dans les notes de publication de cordova-Android 6.3.0 ( https://cordova.Apache.org/announcements 2017/09/27/Android-release.html ), il est écrit que cordova-plugin-compat
doit être supprimé.
Si j'essaye
cordova plugin rm cordova-plugin-compat
Je reçois l'erreur suivante
[ERREUR] Une erreur s'est produite lors de l'exécution du plug-in cordova remove cordova-plugin-compat --save (code de sortie 1):
Erreur: le plugin ‘cordova-plugin-compat’ est requis par (calendrier-plugin-cordova, caméra-plugin-cordova, fichier-plugin-cordova, cordova-plugin-geolocation), suppression de la désinstallation. (essayez --force si essayant de mettre à jour)
Si j'essaie ensuite de --force
supprimer, cela fonctionne, le plug-in est supprimé et je suis capable de créer mon application Android.
MAIS, je viens de retirer ma plate-forme iOS
pour l'ajouter à nouveau et je fais maintenant face à l'erreur
cordova prepare ios Erreur: Impossible de trouver plugin.xml pour le plugin "cordova-plugin-compat". S'il vous plaît essayez de l'ajouter à nouveau.
[ERREUR] Une erreur s'est produite lors de l'exécution de cordova prepare ios (code de sortie 1).
Une idée de ce que je fais mal? Faut-il vraiment supprimer cordova-plugin-compat
? Pourquoi ma plate-forme iOS fait-elle référence à cela, je pensais que c'était uniquement pour Android?
J'utilise [email protected] et [email protected]
P.S .: Si je supprime et ajoute la plate-forme iOS, le plugin compat est automatiquement ajouté comme référence dans package.json et package-lock.json
METTRE À JOUR
La dernière version du plugin ( https://cordova.Apache.org/news/2017/11/10/plugins-release.html ) résoudra probablement ce problème, respectivement, il semblerait que le problème était la référence au cordova-plugin-compat
plugin d'un autre plugin. Mais,
Je ne suis pas encore capable de le tester totalement et de le résoudre car j'utilise un autre plugin où compat est aussi référencé ( https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/issues/426 ) .
Je garderai ce fil ouvert jusqu'à ce que je puisse confirmer à 100% que cela résout le référencement de compat.
FINAL UPDATE
Le PR qui a supprimé la dépendance de Calendar-PhoneGap-Plugin
à ‘cordova-plugin-compat’ est passé, j’ai pu supprimer ce dernier plugin sans "force"
La source du problème était que les plugins faisaient directement référence à cordova-plugin-compat
.
Par conséquent, même si l'utilisation du plug-in était obsolète, elle était toujours nécessaire. Forcer une suppression (avec --force) n’était pas une solution, car si je supprimais et ajoutais une plate-forme à nouveau, à cause de ces références, le plugin ‘cordova-plugin-compat’ était automatiquement ajouté à nouveau au cours de ce processus.
La solution du problème consistait alors à attendre les nouvelles versions ou à soumettre le PR pour supprimer la dépendance.
Dans mon cas, il y avait les plugins qui faisaient référence à cordova-plugin-compat
:
Erreur: le plugin ‘cordova-plugin-compat’ est requis par (calendrier-plugin-cordova, caméra-plugin-cordova, fichier-plugin-cordova, cordova-plugin-geolocation), suppression de la désinstallation. (essayez --force si essayant de mettre à jour)
La mise à jour des plugins suivants a résolu mon problème:
[email protected]
, [email protected]
et [email protected]
ont supprimé la dépendance (voir https://cordova.Apache.org/news/2017/11/10/plugins-release.html )
[email protected]
a supprimé la dépendance à travers ce PR https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin/pull/430
Pour moi, la solution consistait à mettre à jour le SDK Android via Android Studio, puis à exécuter:
cordova plugin rm cordova-plugin-compat --force
cordova platform rm Android
cordova platform add [email protected]
J'espère que ça aide quelqu'un!
J'ai le même problème avec cordova-plugin-file. Existe-t-il une solution pour l'instant?
https://forum.ionicframework.com/t/cordova-plugin-file-cordova-Android-6-3-0-build-error/110682
Vous avez probablement un autre plugin qui nécessite le plugin compat. Vérifiez le package.json de vos plugins pour cela.
Cordova-plugin-compat est uniquement pour Android, il ne devrait donc pas causer d'erreur pour iOS. Je suggère d'essayer de nettoyer votre projet Cordova.
Supprimez les répertoires suivants: plugins, plateformes, node_modules. Ils seront recréés
Puis exécutez:
cordova platform add Android
cordova platform add ios
cordova prepare # usually made by commands above but juste in case
cordova compile
supprimer le plugin compat plus ancien que la version 1.2
$ cordova plugin rm cordova-plugin-compat --force
puis ajoutez la version 1.2
$ cordova plugin add [email protected]
Cela a bien fonctionné pour moi!