Erzwingen Sie, dass xcodebuild nur ein bestimmtes SDK verwendet

Ich versuche, eine Homebrew-Formel zu reparieren, mit der xcodebuildeine Abhängigkeit aufgebaut wird. Leider basiert diese Abhängigkeit auf einem älteren SDK, MacOSX10.12.sdk. Ich kann dieses Projekt nicht dazu bringen, ein neueres SDK zu verwenden, da dies eine umfassende Umgestaltung der Codebasis erfordern würde. Darüber hinaus stammt diese Bibliothek von Apple und sie haben sich dafür entschieden, die Unterstützung dafür im neuesten Xcode SDK absichtlich einzustellen.

Glücklicherweise habe ich es geschafft, das SDK, das ich brauche, aus diesem Repository auf Github zu finden . Aber jetzt weiß ich nicht, wie ich xcodebuilddie Verwendung des SDK erzwingen kann, das ich brauche. Egal welche Optionen oder Variablen ich setze, es xcodebuildwird immer das Standard-SDK von Xcode verwendet.

Die Version des Systems, das ich dafür verwende, ist 10.12.6. Ja, obwohl die Version des Systems selbst 10.12 ist, weigert sich Xcode, ein SDK zu verwenden, das dieser Version entspricht.

Wie kann ich also erzwingen, xcodebuildmein älteres SDK in meinem eigenen benutzerdefinierten Verzeichnis zu verwenden?

Antworten (1)

Sie führen xcodebuild wie folgt aus:

xcodebuild -sdk "/path/to/sdk/" -project myproj.xcodeproj
Die Fahne habe ich schon probiert -sdk. wird immer noch mit Flags wie und xcodebuildaufgerufen . Es wird auch mit und aufgerufenclang-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk-mmacosx-version-min=10.13libtoolMACOSX_DEPLOYMENT_TARGET=10.13-syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
Sind Sie sicher, dass Sie diese Pfade nicht tatsächlich auf das 10.13 SDK im xcodeproj selbst festgelegt haben?
Ich bin mir darüber nicht sicher. Wo finde ich diese Pfade in Xcode?
In den Build-Einstellungen - aber ich würde empfehlen, sich die Xcode-Projektdateien zuerst mit einem einfachen Texteditor anzusehen, um dies zu bestätigen.
Danke für die Vorschläge. Es scheint, dass Sie recht haben; Die Projekteinstellungen versuchen, immer das neueste SDK zu verwenden und versuchen, immer die neueste Systemversion bereitzustellen. Glücklicherweise ilovezfshat mir (einer der Betreuer von Homebrew) geholfen, mein Problem zu lösen, ohne ein älteres SDK verwenden zu müssen, indem er einige Umgebungsvariablen gesetzt hat. Er erklärt es hier. Ich hatte bereits versucht, das zu tun, was er tat, aber ich glaube, ich habe es vermasselt, indem ich versuchte, ein älteres SDK zu verwenden.
Auf jeden Fall fand ich Ihre Antwort hilfreich, also gebe ich Ihnen eine positive Stimme. Danke!