2012-05-23 5 views
22

Ich habe Cordova als Komponente zu meinem iOS-Projekt hinzugefügt. ein eigenes Plugin Hinzufügen führt zu dem Fehler, trotz, dass das Plugin arbeitet in einem Cordova-only-Projekt:"'CDVPlugin.h' Datei nicht gefunden" in Cordova als Komponente (Cleaver)

'CDVPlugin.h' file not found 

Der problematische Teil ist wie folgt:

#import <Foundation/Foundation.h> 

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

Was bin ich?

Antwort

23

Klicken Sie auf das Projektsymbol im Projektnavigator,

wählen Sie Ihr Projekt, wählen Sie dann die "Build Settings"

Geben Sie "Header-Suchpfade" in das Suchfeld ein

hinzufügen "$(CORDOVALIB)/Classes" und überprüfen Sie die Rekursiv Option - für die Header-Suchpfade Wert

optional hinzufügen "-all_load" und "-Obj-C" - für die Andere Linker Flags Wert

siehe detailed description (step 17)

+0

Das ist, was es für mich gelöst hat, danke! – hnilsen

+7

Der Link ist gebrochen – Ghigo

+0

https://github.com/purplecabbage/GDCordova/blob/master/docs/How%20to%20Use%20Cordova%20as%20a%20Component.md – daserge

21
Headerdatei ändern

zu:

#import <Cordova/CDVPlugin.h>

es in meiner Anwendung funktioniert.

+0

Dies ist die richtige Lösung für Xcode 7.1 - alle der Rest hat es für mich nicht aufgelöst. – rcat24

+0

Erprobte Lösung für XCode 7.2 und funktioniert gut. – Papasmile

+0

Versucht für XCode 8.2.1 und arbeitete für mich –

0

Werfen Sie einen Blick auf meine Antwort here:

Ich hatte das gleiche Problem, während das ShareKit Plugin auf Xcode Installation 4.5, cordova 2.1.0 & JQM 1.2.0. Der problematische Block war:

#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 

Was für mich gearbeitet wird, um die #ifdef Linie sowie Kommentierung aus Block des ganzen #else Kommentierung aus.

Auch die #import-Zeile wurde bereits im Quellcode, den ich mit dem Plugin heruntergeladen habe, auskommentiert, so dass ich mich nicht darum gekümmert habe.

Könnte etwas Hilfe für Sie sein.

1

Hinweis: Phonegap 2.9.1 (Nov 2013))

begegnete ich das gleiche Problem bei dem Versuch, eine Open-Source "C" Telefon Lücke Plugin funktioniert. Die Lösung war, das Cordovalib hinzuzufügen.xcodeproj zum Zielprojekt, klicken Sie auf your_project.xcodeproj - Sie müssen in den Zieleinstellungen suchen, unter der Registerkarte Phasen erstellen, stellen Sie sicher, dass Cordovalib in Target Dependencies hinzugefügt wird.

Sobald dies erledigt ist, sollte die Anweisung: #import funktionieren.

0

import

mit (

Import "Klassen/CDVPlugin.h"

OR

Import "CordovaLib/Klassen/CDVPlugin.h") ersetzen

0

thakns user513790 und Fabio Antunes. Nach Antwort folgende ich eingestellt hatte Immer Suche Benutzerpfade-Ja

2

Ich habe sehr viel Zeit damit verbracht, das gleiche Problem in meinem Projekt zu beheben, so lassen Sie mich meine Erkenntnisse teilen. Es kann für diejenigen relevant sein, die das Projekt in einer Konfiguration erstellen können, aber in einer anderen Konfiguration (z. B. beim Erstellen von Komponententests) findet der Precompiler CDVPlugin.h nicht.

Sie müssen sicherstellen, dass CordovaLib Unterprojekt die gleichen Konfigurationen wie Ihr Hauptprojekt hat.

  1. Wählen Sie das Hauptprojekt in Xcode im Projektnavigator.
  2. Klicken Sie auf das Projektsymbol (über den Zielen).
  3. Wählen Sie Info Registerkarte.
  4. Erweitern Sie Configurations.

Also, das ist eine Reihe Ihrer App-Konfigurationen. In meinem Beispiel sah es so aus: App configurations

Sie müssen die gleichen Konfigurationen in Ihrem CordovaLib Unterprojekt haben.

  1. Wählen Sie CordovaLib Unterprojekt.
  2. Klicken Sie auf das Projektsymbol (über den Zielen).
  3. Wählen Sie Info Registerkarte.
  4. Erweitern Sie Configurations.
  5. Stellen Sie sicher, dass Sie die gleichen Konfigurationen wie im Hauptprojekt haben. Wenn einige Konfigurationen fehlen:
    1. Klicken Sie auf + Schaltfläche.
    2. Wählen Sie Duplicate "Release" Configuration
    3. Geben Sie den richtigen Namen für die Konfiguration. Kopieren Sie es aus den Haupteinstellungen des Projekts.

Jetzt einen bereinigter Build durchführen.

56

Für xcode7 hinzufügen "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" zu Ihrem Header-Suchpfade (und Sie können festlegen müssen Bitcode aktivieren zu No - war für mich notwendig, sondern kann auch auf andere Problem mit XC7 bezogen werden)

+2

Pünktlich! Das ist die richtige Antwort. Ich danke Ihnen lieber Herr! – jlstr

+0

Das Hinzufügen von "$ (OBJROOT)/UninstalledProducts/$ (PLATFORM_NAME)/include" zu meinen Header-Suchpfaden löst das Problem in meinem Fall. Enable Bitcode bleibt auf YES. Zu beachten ist, dass das Problem nach einem Update von Xcode von einer früheren Version 7 auf Version 7.1 (7B91b) aufgetreten ist. – Lisarien

+0

Wie @Lisarien sagte, ist es nicht notwendig, BitCode zu aktivieren. Fügen Sie einfach den richtigen Pfad hinzu! Es hat für mich funktioniert! –

20

Ich hatte dieses Problem mit Cordova. Komm, um herauszufinden, dass mein CordovaLib-Ordner unter dem ios-Plattformverzeichnis verschwunden ist.

ich getan habe:

cordova platform remove ios 

dann

cordova platform add ios 

... und das Problem behoben.

+3

Ja ja ja. Dies ist die Lösung für alle Probleme des Lebens. – Matt

+1

Einige Monate später, und ich bin wieder mit diesem Problem konfrontiert, habe ich nicht bemerkt, dass ich bereits eine Lösung gepostet habe. Meine eigene Lösung hat es nicht für mich getan :( – Helzgate

+0

hat für mich funktioniert! :-) – charliebrownie

0

in Xcode 8 und 8 + einfach die Linie für mich zu kommentieren gearbeitet:

#import ... 

Diese besonders nützlich ist, wenn Sie versuchen IOS App Build mit ionischen oder cordova haben watchkit oder Produkt-Steuer nativ zu erweitern.