Festlegen eines #define von der Befehlszeile in xcode 4.6

8

Ich versuche, ein #define-Makro zu setzen, wenn ich mit xcodebuild einen Befehlszeilenaufbau mache und kein Glück habe.

Ich habe versucht, -DMYMACRO=1 und MYMACRO=1 alles andere, was ich mir vorstellen kann und nichts funktioniert.

Wie legen Sie eine # define von der Befehlszeile fest?

    
Roger Gilbrat 29.03.2013, 18:03
quelle

1 Antwort

25

Roger,

Sie suchen nach einer Möglichkeit, GCC_PREPROCESSOR_MACROS über das Befehlszeilentool xcodebuild festzulegen. Die man-Seite für xcodebuild zeigt das Format für das Anwenden dieser Einstellungen, der Abschnitt SYNOPSIS bezieht sich jedoch nur auf "setting = value ..."

%Vor%

Letztendlich können Sie einen der Werte für die Build-Einstellungen direkt in der Befehlszeile festlegen, indem Sie dieses Format verwenden und den Namen der tatsächlichen Build-Einstellung kennen, den Sie ändern möchten. Das wirft natürlich die Frage auf ...

Wie finde ich Namen für Build-Einstellungen?

Ich bin froh, dass du gefragt hast! Die Seitenleiste von Xcode 4 ist der einfachste Ort, um nach dem Namen der Befehlszeilen-Build-Einstellung zu suchen.

Wenn Sie nach einem Build-Einstellungsnamen suchen, ist der Quick Help Inspector in der Xcode 4 Utilities-Seitenleiste der richtige Ort für Sie.

  1. Greifen Sie auf den Bildschirm "Build-Einstellungen" Ihres Projekts zu.
  2. Stellen Sie sicher, dass die Sidebar (was Xcode als "Dienstprogramme" bezeichnet) sichtbar ist, indem Sie auf die Schaltfläche "Dienstprogramme" neben der Schaltfläche "Organizer" in der oberen rechten Ecke von Xcode klicken.
  3. Stellen Sie in der Seitenleiste "Dienstprogramme" sicher, dass der "Schnellhilfe-Inspektor" sichtbar ist.
  

Alternativ können Sie Option + Befehl + 2 verwenden, um den Schnellhilfe-Inspektor direkt anzuzeigen!

Schließlich sind Sie bereit, Ihre Build-Einstellung zu finden:

  1. Führen Sie entweder eine Suche nach der Build-Einstellung durch, die Sie ändern möchten, oder blättern Sie durch die Liste der Build-Einstellungen.
  2. Klicken Sie auf die Build-Einstellung, an der Sie interessiert sind, und beobachten Sie das Quick Help Inspector-Update.
  3. Der Abschnitt "Deklaration" des Schnellhilfe-Inspektors zeigt den Befehlszeilen-Build-Einstellungsnamen an, den Sie verwenden möchten.

Im Fall der Einstellung "Präprozessormakros", nach der Sie ursprünglich gefragt haben, lautet diese Einstellung:

  

GCC_PREPROCESSOR_DEFINITIONS

Wenn Sie dies auf Ihre ursprüngliche Frage zurückführen, können Sie diese Build-Einstellung in der Befehlszeile festlegen, indem Sie einfach SETTING_NAME = 'DESIRED_VALUE' zusammen mit dem Rest Ihres xcodebuild-Befehls angeben. Im Fall eines schnellen, kleinen Testprojekts, das ich "TestApp" genannt habe, wollte ich, dass der Präprozessor-Makro "BKM" auf den Wert 1 gesetzt werden soll. Mein xcodebuild-Befehl wäre:

  

xcodebuild -project TestApp.xcodeproj -scheme TestApp GCC_PREPROCESSOR_DEFINITIONS = '$ {geerbt} BKM = 1'

Warum haben Sie $ {geerbt} dort drin?

Wenn Sie Präprozessormakros verwenden, haben Sie wahrscheinlich mehr als eine, die Sie verwenden. Einige davon möchten Sie möglicherweise nicht von der Befehlszeile aus ändern, haben aber dennoch in den Build-Einstellungen des Ziels oder Projekts codiert. Die Verwendung von '$ {geerbt}' weist xcodebuild an, auch die auf einer höheren Ebene definierten Erstellungseinstellungen zu verwenden, anstatt nur diejenigen zu verwenden, die wir im Befehl xcodebuild definiert haben. In den meisten Fällen möchten Sie $ {geerbt} verwenden, um andere konfigurierte Werte zu übernehmen, die Sie eingerichtet haben.

Muss ich den Wert in Apostrophe einschließen?

Wenn Sie mehr als einen Wert festlegen möchten, müssen Sie den Wert in Apostrophe umbrechen. Wenn Sie zwei oder mehr Präprozessor-Makros von der Befehlszeile aus festlegen, wird das 2nd + -Makro als Build-Einstellung interpretiert ein Präprozessor Makro ... nicht ganz das richtige Verhalten. Die Apostrophe dienen als eine Möglichkeit, mehrere Werte für eine Einstellung zusammen zu sammeln. Im Fall meines Beispiel-Befehls xcodebuild wollte ich, dass xcodebuild den vererbten Satz von Präprozessor-Makros zusammen mit meiner spezifischen BKM-Einstellung verwendet, sodass ich den Wert in Apostrophe umwandelte, damit xcodebuild beide als Präprozessor-Makros behandelt.

Funktioniert das auch mit Arbeitsbereichen?

Absolut! Ändern Sie einfach den Befehl, um den Parameter -workspace anstelle des Parameters -project zu verwenden, und schon sind Sie im Geschäft!

    
Bryan Musial 29.04.2013 08:31
quelle

Tags und Links