Ok, hier ist, was ich versucht habe.Zwei Ziele, zwei Header-Dateien mit dem gleichen Namen, wie man jeden Header für das richtige Ziel verwendet?
Ich habe die Header-Dateien in zwei separaten Verzeichnissen IRL. Sie sind gleich benannt, befinden sich jedoch an zwei verschiedenen Orten.
Ich möchte nur die relevanten Header-Datei für jedes Ziel enthalten. Sagen wir zur Erleichterung der Erklärung, dass die Header-Datei "Config.h" heißt.
So habe ich:
$ {PRODUCT_DIR} /Header1/Config.h
und
$ {} PRODUCT_DIR /Header2/Config.h
Diese Dateien erscheinen in der LHS von Xcode auch in zwei verschiedenen Gruppen (Heade r1 und Header2, die auf die IRL-Ordner zeigen).
Also jetzt alles, was ich tun muss, ist Xcode wählen Sie die richtige aus dem richtigen Ordner für jedes Ziel.
Target1
und
Target2
Ich habe versucht, jedes Ziel den Pfad zu dem User Header Search Paths
zum Hinzufügen, aber es ist immer noch die falsche Wahl. Ich habe auch versucht, "Immer Benutzerpfade durchsuchen" zu aktivieren, was auch keinen Effekt zu haben scheint.
Also meine Frage ist, ist das, weil sie im Projektverzeichnis sind? Oder liegt es daran, dass sie sich in Xcode im Dateimanager auf der LHS befinden, also kopiert Xcode sie in den Erstellungsordner?
Das Merkwürdige ist, scheint es, in alphabetischer Reihenfolge die Header-Dateien aus dem Ordner mit dem Nachnamen zu wählen ...
In früheren Versionen von Xcode Ich bin sicher, dass Sie, welche Header kopieren in den Build wählen könnte Mappe.
Wie auch immer .. weiß jemand, wie ich das beheben kann, damit ich die richtige Header-Datei für das Ziel auswählen kann?
Vielen Dank.
Ich bin mir nicht sicher, aber was ist mit bedingten Import? –
Das ist der Backup-Plan. :) Aber es wird eine Last mehr Schritte als auf diese Weise hinzufügen. Ich bin sicher, das sollte möglich sein. –
1. Eigentlich kann ich nicht verstehen, warum Sie Probleme mit "Header Search Paths" haben. Versuchen Sie, diese Header aus dem Projekt auszuschließen, und verwenden Sie keine "**" rekursiven Suchpfade. 2. Normalerweise verwende ich andere "include" mit "ifdef else". So können Sie jedem Ziel eine beliebige globale Variable hinzufügen und überprüfen, was Sie hinzufügen müssen (Beispiel: "ifdef target1 #include" header1.h "else # include" header2.h "endif;). Es hängt also von Ihren Anforderungen ab. – Jlexyc