web-dev-qa-db-fra.com

"Fichier 'CDVPlugin.h' introuvable" dans Cordova en tant que composant (Cleaver)

J'ai ajouté Cordova en tant que composant de mon projet iOS. L'ajout d'un plugin personnalisé entraîne l'erreur, même s'il fonctionne dans un projet exclusivement Cordova:

'CDVPlugin.h' file not found

La partie problématique est la suivante:

#import <Foundation/Foundation.h>

#ifdef CORDOVA_FRAMEWORK
#import <Cordova/CDVPlugin.h>
#else
#import "CDVPlugin.h"
#endif

Qu'est-ce que je rate?

23
Michael Schmidt

Pour xcode7, ajoutez "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" à vos chemins de recherche en-tête (et vous devrez peut-être définir Enable Bitcode sur No - était nécessaire pour moi, mais peut être lié à un problème différent avec xc7)

56
Marek Jalovec

Cliquez sur l'icône du projet dans le navigateur de projet, 

sélectionnez votre projet, puis sélectionnez l'onglet "Paramètres de construction"

Entrez "Chemins de recherche en-tête" dans le champ de recherche

Ajouter "$(CORDOVALIB)/Classes" et cocher la case Récursive - pour la valeur Header Search Paths

facultatif Ajoutez "-all_load" et "-Obj-C" - pour la valeur Other Linker Flags

voir description détaillée (étape 17)

23
user513790

Changez votre fichier d'en-tête en:

#import <Cordova/CDVPlugin.h>

cela fonctionne dans mon application.

21
vishnu

J'ai eu ce problème en utilisant Cordova. Venez découvrir mon dossier CordovaLib sous le répertoire de la plate-forme ios disparu. 

J'ai fait:

cordova platform remove ios

puis

cordova platform add ios

... et cela a résolu le problème.

20
Helzgate

J'ai passé énormément de temps à essayer de résoudre le même problème dans mon projet, alors laissez-moi vous faire part de mes conclusions. Cela peut être pertinent pour ceux qui sont capables de construire le projet dans une configuration, mais dans une autre configuration (par exemple, lors de la construction de tests unitaires), le précompilateur ne trouve pas CDVPlugin.h.

Vous devez vous assurer que le sous-projet CordovaLib a le même ensemble de configurations que votre projet principal.

  1. Sélectionnez le projet principal dans Xcode dans le navigateur de projet.
  2. Cliquez sur l'icône du projet (au-dessus des cibles).
  3. Sélectionnez l'onglet Info.
  4. Développez Configurations.

Donc, ceci est un ensemble de configurations de votre application. Dans mon exemple, cela ressemblait à ceci: App configurations

Vous devez avoir le même ensemble de configurations dans votre sous-projet CordovaLib.

  1. Sélectionnez CordovaLib sous-projet.
  2. Cliquez sur l'icône du projet (au-dessus des cibles).
  3. Sélectionnez l'onglet Info.
  4. Développez Configurations.
  5. Assurez-vous que vous avez le même ensemble de configurations que dans le projet principal. Si certaines configurations manquent:
    1. Cliquez sur le bouton +.
    2. Sélectionnez Duplicate "Release" Configuration
    3. Donnez le bon nom pour la configuration. Copiez-collez-le à partir des principaux paramètres du projet.

Maintenant, effectuez une construction propre.

3
pjuzeliunas

Note: Phonegap 2.9.1 (novembre 2013))

J'ai rencontré le même problème en essayant de faire fonctionner un plug-in de gap de téléphone "C" open source. La solution consistait à ajouter Cordovalib.xcodeproj au projet cible. Une fois terminé, cliquez sur votre_projet.xcodeproj. Vous devrez regarder dans les paramètres de la cible, sous l'onglet Phases de la construction, assurez-vous que Cordovalib est ajouté dans les dépendances de la cible.

Une fois cela fait, il devrait permettre la déclaration: #import pour travailler.

1
Paulo

thakns user513790 et Fabio Antunes . Après la réponse suivante, je devais définir Toujours rechercher les chemins utilisateur à Oui

0
Kishan Rathod

Regardez ma réponse ici :

J'ai eu le même problème lors de l'installation du plugin ShareKit sur Xcode 4.5, Cordova 2.1.0 et JQM 1.2.0. Le bloc problématique était:

#ifdef CORDOVA_FRAMEWORK
#import <Cordova/CDVPlugin.h>
#import <Cordova/CDVPluginResult.h>
//#import <Cordova/JSONKit.h>

#else
#import "CDVPlugin.h"
#import "CDVPluginResult.h"
#import "JSONKit.h"
#endif

Ce qui a fonctionné pour moi, c'est commenter la ligne # ifdef ainsi que tout le bloc #else.

De plus, la ligne #import a déjà été commentée dans le code source que j'ai téléchargé avec le plugin, donc je ne me suis pas donné la peine de le faire.

Cela pourrait vous aider.

0
A_B

Dans les xcode 8 et 8 +, simplement commenter la ligne a fonctionné pour moi:

#import ...

Cela est particulièrement utile si vous essayez d’étendre la construction d’une application IOS à l’aide de ionic ou de Cordova afin de permettre le contrôle en mode veille du kit ou du widget.

0
RohitAneja

remplacer 

importation 

avec(

importer "Classes/CDVPlugin.h"

OR

importer "CordovaLib/Classes/CDVPlugin.h")

0
bill