Xcode 7.2: In "Archiv": Das Problem wird behoben: "Cordova / CDVViewController.h 'Datei nicht gefunden". Es gibt zwar keine derartigen Probleme beim Erstellen der App

71

In iOS aktualisiere ich 7.2. Ich kann mein vorhandenes Projekt problemlos auf meinem Gerät erstellen. Als es an der Zeit war, das Projekt zu archivieren, um die Übermittlung an den App Store vorzubereiten, wird jedoch ein Erstellungsfehler angezeigt - die Datei Cordova / CDVViewController.h wurde nicht gefunden. Ich habe fast alle Korrekturen / Problemumgehungen durchlaufen, bei denen ich Stack Overflow und Google nicht gefunden habe, und keine davon hat für mich funktioniert. Wenn ich zu Xcode 6.4 zurückkehre, kann ich problemlos erstellen und archivieren, aber ich kann jetzt, da iOS 9.1 ausgeführt wird, nicht auf meinem Gerät erstellen.

Ich vermute, es ist irgendwo ein Konfigurationsproblem mit dem neuen Xcode-Versions-Setup. Ist noch jemand darauf gestoßen? Auch hier scheinen die üblichen Verdächtigen (Einstellungen> Speicherort> Abgeleitete Daten> Erweitert> Eindeutig), Header-Suchpfade usw. in Ordnung zu sein.

Danke, Adisheshu

Adisheshu RY
quelle

Antworten:

233

Dieses Problem scheint in Xcode 7.2 aufgrund des Suchpfads / Include aufzutreten.

Lösen Sie dies folgendermaßen:

  1. Wählen Sie Ihre [projectName]in Xcode ZIELE .

  2. Gehen Sie zur Registerkarte Build Settings .

  3. Stellen Sie sicher, dass der Filter auf "Alle" und nicht auf "Basis" eingestellt ist.

  4. Suche "Header-Suchpfade"

  5. Doppelklicken Sie und fügen Sie diesen Pfad sowohl zu "Debug" als auch zu "Release" hinzu: $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

  6. Jetzt reinigen Sie das Projekt und neu starten Xcode.

  7. Kann erstellen und archivieren .

  8. Das ist alles.

ArunDhwaj IIITH
quelle
5
Dies ist die richtige Antwort. Ebenfalls erwähnenswert: Auf der Registerkarte Build-Einstellungen wird standardmäßig der Filter 'Basic' verwendet. Stellen Sie sicher, dass "Alle" ausgewählt ist. Andernfalls wird das Feld "Header-Suchpfade" nicht angezeigt.
jmknoll
18
Ich sehe diese Antwort oft geworfen, aber mein Projekt hat bereits genau dieselbe Zeichenfolge als Teil der Suchkopfpfade, aber die Datei wird immer noch nicht gefunden. :-(
simbolo
3
Vergessen Sie nicht, dies allen Pahts hinzuzufügen, Release, nicht nur Debug. Ich habe zuerst nur zu Debug hinzugefügt und Release verpasst und es hat nicht geholfen. Durch Hinzufügen zu Release wurde das Problem behoben. Vielen Dank!
Wojjas
2
Ich musste auch das alte löschen: $ (OBJROOT) / UninstalledProducts / include Dann würde das Archiv ausgeführt. Nicht bevor.
pdschuller
4
Für diejenigen, die sich nicht an die Verknüpfung zum Bereinigen Ihres Projekts erinnern, drücken SieShift-Cmd-K
pbojinov
69

Nachdem ich jede Lösung ohne Erfolg ausprobiert hatte, lief ich:

cordova platform update ios

Das hat es für mich behoben. (XCODE 7.3.1, Cordova 6.3.0)

Referenz: Cordova-App kann nicht mit Xcode 7.1 archiviert werden (Cordova / CDVViewController.h-Datei nicht gefunden)

Dom Hede
quelle
Vielen Dank. Ich habe Xcode Version 7.2 und dies hat mein Problem behoben.
Ishara Amarasekera
Seltsamerweise scheint dies das für mich noch schlimmer zu machen. Ich muss ios entfernen und dann erneut hinzufügen, bevor ich die zusätzlichen xcode-Fehler beseitigen kann.
Jacksonkr
Dies hat mein Problem mit Cordova 7.1 und dem Inappbrowser-Plugin behoben, das CDVViewController.h verwendet. github.com/purplecabbage/GDCordova/blob/master/docs/…
Lothre1
Dies hat mein Problem mit Xcode 10.2 und Cordova 6.0.0 behoben.
Vadim
7

Wenn Sie diese Zeile hinzufügen:

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

Der Header-Suchpfad (wie in der Antwort 'im3r3k' beschrieben) hat dieses Problem nicht behoben. Setzen Sie auch Folgendes:

Build Settings -> Architectures -> Build Active Architecture Only -> YES
Gil Epshtain
quelle
6

Sie sollten die Cordova iOS-Version Ihres Projekts auf 3.9.2 aktualisieren (neueste Version von 3 vom 11.03.16). Ich habe den gleichen Fehler bei der Verwendung von 3.8.0 erhalten und er wurde in 3.9 behoben.

Alternativ können Sie ein Upgrade auf Cordova iOS v4.1.0 durchführen (Stand: 11.03.16). Beachten Sie jedoch, dass Sie die Unterstützung für iOS 6 und 7 verlieren und die Ausrichtung des Cordova-Plugin-Bildschirms noch nicht für die Verwendung von 4 aktualisiert wurde Sie müssen Ihre App also im Hoch- oder Querformat sperren.

BEARBEITEN:

Ohne ein Upgrade können Sie dies manuell in XCode beheben. gehe zu

Build-Einstellungen -> Header-Suchpfade: Ändern:

$(OBJROOT)/UninstalledProducts/include

zu:

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

( verwandtes Problem auf apache.org )

im3r3k
quelle
4

Das hat es für mich behoben:

  • Öffnen Sie Ihr Projekt in Xcode
  • Gehen Sie zu Einstellungen -> Standorte -> Erweitert
  • Wählen Sie "Einzigartig" als Option für "Build-Speicherort"
  • Produkt -> Reinigen
  • Produkt -> Bauen

Entnommen aus https://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232/40

mles
quelle
1
Ich habe alle anderen Änderungen in der Build-Konfiguration ausprobiert, aber schließlich konnte mein Projekt auf einem realen Gerät installiert werden
iflorit
1
Ich habe auch alle oben genannten Änderungen ausprobiert, und KEINE davon hat funktioniert. Ich hatte ein Upgrade von einer alten Version von Xcode (damals, als es mit meinem iPod funktionierte) auf die jetzt Version 8.3 aktualisiert, und alle Pfade, die oben hinzugefügt werden mussten, befanden sich bereits im Debug und in der Version, konnten es aber immer noch nicht finde sie; Hinzufügen von Unique funktioniert, woohoo, danke!
Kapitän Fantastic
3

Ich hatte auch dieses Problem, aber für mich war es nicht genug, einen Pfad zur Headersuche hinzuzufügen. Ich habe CDVViewController.h zum Abschnitt "public" im Unterprojekt CordovaLib.xcodeproj -> CordovaLib (Ziel) -> Build-Phasen -> Header -> Public hinzugefügt

Andrew Bogaevskyi
quelle
3

Für mich $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/includewar das bereits in den Header-Suchpfaden (mit XCode 8 in El Capitan). Anschließend habe ich den Suchpfaden für Benutzerkopfzeilen den spezifischen Pfad zum CordovaLibOrdner hinzugefügt , wobei die recursiveOption aktiviert ist (für unerfahrene XCode-Benutzer wie mich wählen Sie das Projekt in der Baumansicht (1. Knoten) aus, um "Build-Einstellungen" anzuzeigen. !!).

Aber achten Sie auf Leerzeichen! Nach vielen Fehlern war es sicherer, den Ordner einfach aus einem Finder-Fenster zu ziehen, und er füllte sich als$(SRCROOT)/.. (Forts.), nicht erwartet wurde, aber funktionierte.

Außerdem XCode/Preferences/Locations/Custom Pathshabe ich in der gleichen Weise einen CORDOVALIB- Namen mit demselben Ordner wie zuvor hinzugefügt (diesmal wurde der vollständige Pfad ohne den verwendet$(SRCROOT) Ding verwendet).

Ich habe einige Stunden gebraucht, um alles herauszufinden ...

Bernardo Dal Corno
quelle
1
Wenn Sie Leerzeichen in einem Pfad haben, können Sie Zitate hinzufügen"$(SOME_VAR)some path/with spaces"
Jacksonkr
Danke @Jacksonkr. Ich bin mir nicht sicher, ob ich das nicht ausprobiert habe (was offensichtlich, aber sehr nützlich ist) oder ob der Weg so lang war, dass ich mich darin verloren habe. Trotzdem eine tolle Bemerkung, danke.
Bernardo Dal Corno
2

Die oben genannten Lösungen haben bei mir nicht funktioniert.

In my case, when I build my iOS platform, CordovaLib folder was not included.
1. Delete existing CordovaLib.xcodeproj
2. Add existing files. Add CordovaLib.xcodeproj from CordovaLib folder
3. Add dependencies and select CordovaLib
4. Add link Binaries with library and select libCordova.a

Das ist es!

h3n
quelle
Ich habe die Schritte 1 bis 3 ausgeführt und es hat bei mir funktioniert. Ich bin mir nicht sicher, wo ich Schritt 4 machen soll.
Seite
1

Ich habe xcode 7.3 verwendet und hatte das gleiche Problem. In meinem Fall war der Fehler auf einen Fehler zurückzuführen, der beim Ausführen von "cordova platform add ios" auftrat. Es trat ein Fehler auf, da ein Bild nicht im res-Ordner gefunden werden konnte und dadurch verhindert wurde, dass cordova platform add ios korrekt beendet wurde.

Juan Nogueira
quelle
1
  1. Wählen Sie in Ihren Xcode-Projekteinstellungen ZIELE
  2. Wählen Sie unter ZIELE die Registerkarte Build-Einstellungen
  3. Stellen Sie in den Unteroptionen auf der Registerkarte Build-Einstellungen sicher, dass Sie Alle auswählen
  4. Scrollen Sie nach unten zum Abschnitt Suchpfade
  5. Suchen Sie nach Header-Suchpfaden
  6. Fügen Sie der Release-Option die folgende Konfiguration hinzu (als neuer Wert in einer eigenen Zeile): $ (OBJROOT) / UninstalledProducts / $ (PLATFORM_NAME) / include
  7. Bereinigen Sie das Projekt: Befehl + Umschalt + K.
  8. Starten Sie Xcode neu

Der folgende Screenshot zeigt, was Sie in Xcode 7.2 sehen sollten, nachdem Sie die Schritte 1 bis 6 ausgeführt haben (die blau hervorgehobene Linie zeigt die hinzugefügte Konfiguration an): Geben Sie hier die Bildbeschreibung ein

Dinesh Vaitage
quelle
0

Setzen Sie in den Build-Einstellungen auch ENABLE BITCODE = NO

dijipiji
quelle
0

Ich hatte das gleiche Problem, also habe ich es gerade <icon src="icon.png" />aus der Konfigurationsdatei entfernt . dann entfernt I & added mit IOS - Plattform cordova platform remove iosdanncordova platform add ios

Alamri
quelle
3
Ich wage zu sagen, dass dies weniger mit dem Entfernen des Symbols als vielmehr mit dem Entfernen / Hinzufügen von ios zu tun hat
Jacksonkr
0

Für mich hat folgendes funktioniert

Xcode 8.1 ios 10.x.

(Ziel -> Build-Einstellungen -> Header-Suchpfade)

"$ {PODS_ROOT} / Cordova / CordovaLib / Classes / Public"

wie

Der Ordner "$ {PODS_ROOT} / Headers / Public" war leer

Chirag Purohit
quelle
0

Dieses Problem trat auf, als ich das Projekt entfernte und erneut hinzufügte. Einige Ressourcendateien wie Symbole oder Begrüßungsbildschirme wurden nicht gefunden, sodass das Projekt überhaupt nicht erstellt wurde.

infinito84
quelle
0

Die CDV.h-Datei befindet sich in CordovaLib / CordovaLib.xcodeproj / public. Sie können diesen Weg geben und für mich gearbeitet haben.

Ich weiß nicht, wie ich einen relativen Weg angeben soll. So schleppte ich / sank die Datei und legen Sie sie in ""mit #importwie:

#import "dragged file full path"
Laksh
quelle
0

Deinstallieren Sie die Cordova Platform und installieren Sie sie erneut

cordova platform rm ios

cordova platform add ios
umesh woodu
quelle
-1

Ergänzung der Antwort. Hinzufügen

"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"

Ersetzen Sie nicht die vorhandene Zeile, die ähnlich aussieht und die noch abwärtskompatibel mit Xcode 7 und Xcode 6.4 sein muss.

Klicke hier

Felipe Lastowizka
quelle