2017-02-20 4 views
0

Wenn ein Ziel Build-Einstellungen zu kopieren und sie in eine xcconfig Datei als Nur-Text einfügen, so findet man die Ausgabe von Bedingungen für jede Build-Konfiguration, zB abgeteilt:Wie funktionieren die bedingten Kompilierungsanweisungen "configuration" von Xcode in einer xcconfig-Datei?

//:configuration = Debug 
SETTING = value 
SETTING = value 
SETTING = value 

//:configuration = Release 
SETTING = value 
SETTING = value 
SETTING = value 

//:completeSettings = some 
SETTING 
SETTING 
SETTING 

Einige Fragen, wie die „: Konfiguration“ Direktiven werden verwendet:

  1. Wenn ich eine Einstellung über alle von ihnen in der gleichen Datei angeben, wird es für alle Build-Konfigurationen gelten?

  2. Ich nehme an, sie gelten für eine Gruppe der Einstellungen unter ihnen, aber sie gelten für Einstellungen nach leeren Zeilen?

Antwort

0

Kurze Antwort:

Die Kommentare sind weder Bedingungen noch Richtlinien. Sie sind nur Kommentare, um zu verdeutlichen, welche Build-Konfiguration die folgenden Einträge auf beziehen. Wenn Sie die vollständigen Erstellungseinstellungen eines Ziels kopieren, soll der resultierende Text nicht in einer einzelnen xcconfig-Datei verwendet werden. Es kann vielmehr verwendet werden, um die Elemente zu extrahieren, die Sie für verschiedene Konfigurationsdateien benötigen. Die Kommentare erleichtern das Auffinden der Einstellungen, die Sie für eine bestimmte Build-Konfiguration benötigen.

Wenn Sie also der Debug-Erstellungskonfiguration eines Ziels eine xcconfig-Datei zuweisen, können Sie die Einstellungen unter //:configuration = Debug in diese Datei kopieren und dort gegebenenfalls Änderungen vornehmen.

Lange Antwort:

Sie können pro Ziel pro Build-Konfiguration genau eine xcconfig Datei zuordnen.

(Sie tun dies in dem Info Editor des Projektes unter Konfigurationen, wo Sie eine Liste von Konfigurationen finden, wobei jede Konfiguration erweitert werden kann, um eine Liste zu zeigen, über das Projekt und seine Ziele umfasst. Sie können jeder Konfigurationsdatei eine Konfigurationsdatei zuweisen, indem Sie aus einer Liste von Konfigurationsdateien die Konfigurationsdateien auswählen, die Sie dem Projekt hinzugefügt haben.)

Die in einer zugewiesenen xcconfig-Datei aufgeführten Einstellungen sind verwendet in der Konstruktion der Build-Einstellungen für die Ziel-und Build-Konfiguration Kombination wurde zugewiesen zu, und sie werden im Build Settings Editor in Xcode wiedergegeben. Das Build-System verwendet eine Hierarchie von Konfigurationseinstellungen, die zum Erstellen der Einstellungen verwendet wird, die schließlich angewendet werden.

* (Sie können sehen, in der Xcode Build-Einstellungen Editor auswählen reflektiert Alle und Levels an der Spitze des Build-Settings-Editor alles). Das Build-System startet für die Plattform mit Standardeinstellungen (zB iOS Standard). Diese können durch Einstellungen auf der Projektebene und dann durch Einstellungen auf der Zielebene geändert werden. Der Editor für Buildeinstellungen listet schließlich die Einstellungen Resolved auf, sodass Sie genau sehen können, welche Einstellungen angewendet werden.) *

Die Einstellungen werden in der folgenden Reihenfolge angewendet, wobei jeder nachfolgende Eintrag die vorherige Einstellung außer Kraft gesetzt werden:

Default -> Project Config File -> Project -> Target Config File -> Target. 

Also, wenn Sie angeben, sagen wir, eine Gültiges Architektur in einer Konfigurationsdatei zugewiesen das Projekt für eine bestimmte Build-Konfiguration, dann überschreibt diese Einstellung die Standardeinstellung. Wenn Sie jedoch im Build-Settings-Editor von Xcode einen anderen Wert für diese Einstellung auf Projektebene angeben, überschreibt dieser Wert den in der Datei xcconfig angegebenen Wert. Wenn in einer xcconfig-Datei ein Eintrag für das Ziel für diese Erstellungskonfiguration vorhanden ist, wird dieser Wert angewendet, es sei denn, er wird im Build Settings Editor auf der Zielebene durch einen Wert für diese Einstellung überschrieben. (Confused noch? :-)

Wie ich schrieb, kann nur eine einzige xcconfig-Datei pro Ziel/Build-Konfiguration Kombination angewendet werden. Glücklicherweise können xcconfig-Dateien andere xcconfig-Dateien importieren, so dass Gruppen von Einstellungen zu logischen Einheiten kombiniert und dann in die endgültigen xcconfig-Dateien importiert werden können, die einer Ziel-/Build-Konfiguration zugewiesen werden sollen. Wenn Sie mehr über den Inhalt von xcconfig-Dateien erfahren möchten, schauen Sie hier: The Unofficial Guide to xcconfig files

Verwandte Themen