webentwicklung-frage-antwort-db.com.de

Das Ziel überschreibt die Build-Einstellung "OTHER_LDFLAGS", die in "Pods / Pods.xcconfig" definiert ist

Ich habe SpatialIite in ein Xcode-Projekt eingebunden, das eine Header-Datei aus Proj.4 Verwendet, nur einen Header. Beide sind Xcode-Projekte und haben statische Ziele.

Ich versuche, von Git-Modul zu Cocoapods zu migrieren. Da die Verwendung von statischen Zielen mit Cocoapods schwierig zu sein scheint, möchte ich das Projekt nur wie gewohnt erstellen lassen. Ich habe Podspec für Proj.4 Gemacht. Nachdem ich podfile für SpatialLite geschrieben habe, habe ich die Warnungen erhalten:

[!] The target `SpatialiteIOS [Debug]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The target `SpatialiteIOS [Debug]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The target `SpatialiteIOS [Debug - Release]` overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The target `SpatialiteIOS [Debug - Release]` overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Pods.xcconfig'.
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

Ich lese dieses Problem aber ich bin ziemlich ratlos, was die Warnungen bedeuten und was ich tun kann, um es zu beheben.

Wenn ich den Arbeitsbereich öffne und nur das SpatiaLite-Projekt öffne, sind beide auf Mac OSX 64 ausgerichtet, wenn angenommen wird, dass es sich um ein iOS-Projekt handelt. Mein Podfile sagt "platform: ios".

219
huggie

Das funktioniert definitiv die meiste Zeit:

Gehen Sie zu Ihren Ziel-Build-Einstellungen -> Andere Linker-Flags -> Doppelklick. Füge $(inherited) zu einer neuen Zeile hinzu.

Wenn Sie ein Problem mit "... target überschreibt die in ... definierte Build-Einstellung GCC_PREPROCESSOR_DEFINITIONS" haben, müssen Sie $ (geerbt) zu Ihren Target-Build-Einstellungen -> Präprozessor-Makros hinzufügen

506
Ankish Jain

Es besteht ein Konflikt zwischen Ihren Build-Einstellungen und den von Cocoapods gewünschten Standard-Build-Einstellungen. Zeigen Sie die .xcconfig-Datei (en) in Pods/Target Support Files/Pods - $ {PROJECTNAME}/in Ihrem Projekt an, um die Cocoapods-Build-Einstellungen anzuzeigen. Für mich enthält diese Datei:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/Commando"
OTHER_LDFLAGS = -ObjC -framework Foundation -framework QuartzCore -framework UIKit
PODS_ROOT = ${SRCROOT}/Pods

Wenn Sie mit den Cocoapods-Einstellungen zufrieden sind, rufen Sie Build Settings für Ihr Projekt auf, suchen Sie die entsprechende Einstellung und drücken Sie die Entf-Taste. Dies wird die Einstellung von Cocoapods verwenden.

Wenn Sie dagegen eine benutzerdefinierte Einstellung verwenden müssen, fügen Sie dieser Einstellung $ (geerbt) hinzu.

74
phatmann

Ich habe diese 3 Fehler für den Pod-Befehl im Terminal gesehen

pod install

[!] Das MY_APP-Ziel [Debug/Release] überschreibt die HEADER_SEARCH_PATHS ...
[!] Das MY_APP-Ziel [Debug/Release] überschreibt die OTHER_LDFLAGS ...
[!] Das MY_APP-Ziel [Debug/Release] überschreibt die GCC_PREPROCESSOR_DEFINITIONS ...

Alle diese 3 Fehler würden durch Hinzufügen von $ (geerbt) zu verschwinden

  1. Header-Suchpfade
  2. Andere Linker Flags
  3. Präprozessor-Makros

in Projekt -> Ziel -> Build-Einstellungen

Und jetzt würde der Befehl ohne Fehler ausgeführt

pod install
26
zeeawan

Finden Sie in Ihrem Projekt Target -> Build Settings -> Other Linker Flags, wählen Other Linker Flags, drücken Sie delete (Mac-Tastatur)/Backspace (normale Tastatur), um die Einstellung wiederherzustellen. Für mich geht das.

Beispiel:

Vor enter image description here

Nach enter image description here

20
SamirChen

Hatte gerade ein ähnliches Problem, als ich pod install Ausführte, ich sah die folgenden Warnungen/Fehler (im Zusammenhang mit CLANG_CXX_LIBRARY):

Der Fehler/die Warnung von Cocoapods

[!] The `Project [Debug]` target overrides the `CLANG_CXX_LIBRARY` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `Project [Release]` target overrides the `CLANG_CXX_LIBRARY` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

Die Reparatur

  1. Wählen Sie Ihr Project, damit Sie den Build Settings Sehen können.
  2. Wählen Sie Ihr Target (AppName unter Targets)
  3. Finden Sie C++ Standard Library (Es wird wahrscheinlich in FETT - Dies bedeutet, es ist überschrieben).
  4. Wählen Sie die Linie (blau hervorgehoben) und drücken Sie ⌘ + DELETE (Befehl + Rücktaste)

Die Zeile sollte nicht mehr fett gedruckt sein und wenn Sie pod install Ausführen, sollten die Warnungen/Fehler verschwunden sein.


Sehhilfe

CLANG_CXX_LIBRARY Error/Warning with Cocoapods

19
Anil

Wenn sich Xcode beim Verknüpfen beschwert, z. Bibliothek nicht für -lPods gefunden, erkennt die impliziten Abhängigkeiten nicht:

Gehen Sie zu Produkt> Schema bearbeiten. Klicken Sie auf Erstellen. Statische Pod-Bibliothek hinzufügen. Bereinigen und erneut erstellen

12
Amit Saxena

Für mich war das Problem bei meinen Zieltests. Ich hatte bereits das $(inherited) Flag in meinem Haupt-App-Ziel.

Ich habe es zu MyAppTests Other Linker Flags hinzugefügt. Danach, als ich lief pod install die warnmeldung war weg. enter image description here

8
Andreas Olsson

Die erste Zeile des Links unten hat meinen Tag gerettet:

Wenn Sie Optionen aus den Build-Einstellungen Ihres Projekts Werte hinzufügen möchten, müssen Sie der Werteliste $ (geerbt) voranstellen.

https://github.com/CocoaPods/CocoaPods/wiki/Creating-a-project-that-uses-CocoaPods#faq

Vergessen Sie auch nicht, diese Zeile am Anfang Ihrer Pod-Datei einzufügen:

platform :iOS, '5.0'
6

Ich habe $ (geerbt) hinzugefügt, aber mein Projekt wurde immer noch nicht kompiliert. Für mich war das Problem das Flag "Build for active Architecture only", ich musste es auf YES setzen.

5
sanjana