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?
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)
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
Changez votre fichier d'en-tête en:
#import <Cordova/CDVPlugin.h>
cela fonctionne dans mon application.
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.
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.
Info
.Configurations
.Donc, ceci est un ensemble de configurations de votre application. Dans mon exemple, cela ressemblait à ceci:
Vous devez avoir le même ensemble de configurations dans votre sous-projet CordovaLib
.
CordovaLib
sous-projet.Info
.Configurations
.+
.Duplicate "Release" Configuration
Maintenant, effectuez une construction propre.
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.
thakns user513790 et Fabio Antunes . Après la réponse suivante, je devais définir Toujours rechercher les chemins utilisateur à Oui
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.
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.
remplacer
avec(
OR