Ich habe SpatialIite
in ein Xcode-Projekt eingebaut , das eine Header-Datei von Proj.4
nur einem Header verwendet. Beide sind Xcode-Projekte und haben statische Ziele.
Ich versuche, vom Git-Submodul zu Cocoapods zu migrieren. Da statische Ziele mit Cocoapods schwierig zu verwenden scheinen, möchte ich das Projekt nur auf die übliche Weise erstellen lassen. Ich habe Podspec für gemacht Proj.4
. Nachdem SpatialLite
ich podfile für geschrieben hatte, bekam ich die Warnungen:
[!] 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 habe dieses Problem gelesen, weiß aber nicht genau, was die Warnungen bedeuten und was ich tun kann, um es zu beheben.
Wenn ich den Arbeitsbereich öffne und das SpatiaLite-Projekt alleine öffne, sind beide Probleme auf Mac OSX 64 ausgerichtet, wenn es sich vermutlich um ein iOS-Projekt handelt. In meinem Podfile steht "platform: ios".
Antworten:
Das funktioniert definitiv die meiste Zeit:
Gehen Sie zu Ihren Ziel-Build-Einstellungen -> Andere Linker-Flags -> Doppelklick.
$(inherited)
Zu einer neuen Zeile hinzufügen .Wenn Sie ein Problem mit "... Ziel überschreibt die in ... definierte Build-Einstellung GCC_PREPROCESSOR_DEFINITIONS" haben, müssen Sie Ihren Ziel-Build-Einstellungen -> Präprozessor-Makros $ (geerbt) hinzufügen
quelle
GCC_PREPROCESSOR_DEFINITIONS
in ... definierte Build-Einstellung" haben, müssen Sie $ (geerbt) zu Ihren Ziel-Build-Einstellungen hinzufügen -> Präprozessor-Makros$(inherited)
ist schon da in der obersten Zeile, aber es funktioniert nicht für mich: /Es besteht ein Konflikt zwischen Ihren Build-Einstellungen und den von Cocoapods gewünschten Standard-Build-Einstellungen. Um die Build-Einstellungen für Cocoapods anzuzeigen, zeigen Sie die .xcconfig-Datei (en) unter Pods / Target Support Files / Pods - $ {PROJECTNAME} / in Ihrem Projekt an. Für mich enthält diese Datei:
Wenn Sie mit den Cocoapods-Einstellungen zufrieden sind, gehen Sie zu Build-Einstellungen für Ihr Projekt, suchen Sie die entsprechende Einstellung und drücken Sie die Entf-Taste. Dies verwendet die Einstellung von Cocoapods.
Wenn Sie jedoch eine benutzerdefinierte Einstellung haben, die Sie verwenden müssen, fügen Sie dieser Einstellung $ (geerbt) hinzu.
quelle
Ich habe diese 3 Fehler für den Pod-Befehl im Terminal gesehen
Alle diese 3 Fehler würden durch Hinzufügen von $ (geerbt) zu beseitigt
in Projekt -> Ziel -> Build-Einstellungen
Und jetzt würde der Befehl ohne Fehler ausgeführt
quelle
Other Linker Flags
es nicht ausreichte , nur die Flagge zu wechseln .Suchen
Target -> Build Settings -> Other Linker Flags
, wählenOther Linker Flags
und drücken Sie in Ihrem Projektdelete
(Mac-Tastatur) /Backspace
(Normale Tastatur), um die Einstellung wiederherzustellen. Für mich geht das.Beispiel:
Vor
Nach dem
quelle
Ich hatte gerade ein ähnliches Problem beim Ausführen
pod install
und sah die folgenden Warnungen / Fehler (im Zusammenhang mitCLANG_CXX_LIBRARY
):Der Fehler / die Warnung von Cocoapods
Die Reparatur
Project
damit Sie die sehen könnenBuild Settings
.Target
(AppName
unterTargets
)C++ Standard Library
(Es wird wahrscheinlich in Fettdruck angezeigt - dies bedeutet, dass es überschrieben wird).Die Zeile sollte nicht mehr fett gedruckt sein und wenn Sie
pod install
die Warnungen / Fehler ausführen , sollten sie verschwunden sein.Sehhilfe
quelle
Wenn sich Xcode beim Verknüpfen beschwert, z. B. Bibliothek für -lPods nicht gefunden, werden die impliziten Abhängigkeiten nicht erkannt:
Gehen Sie zu Produkt> Schema bearbeiten. Klicken Sie auf Erstellen. Fügen Sie die statische Bibliothek der Pods hinzu. Bereinigen und erneut erstellen
quelle
Für mich war das Problem bei meinen Zieltests. Ich hatte bereits die
$(inherited)
Flagge in meinem Haupt-App-Ziel.Ich habe es zu MyAppTests Other Linker-Flags hinzugefügt. Danach, als ich lief, war
pod install
die Warnmeldung weg.quelle
Die erste Linkzeile unten hat meinen Tag gerettet:
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:
quelle
Ich habe $ (geerbt) hinzugefügt, aber mein Projekt wurde immer noch nicht kompiliert. Für mich war das Problem "Nur für aktive Architektur erstellen", ich musste es auf JA setzen.
quelle