web-dev-qa-db-de.com

Xcodebuild kann auf Mavericks mit installierten Befehlszeilentools nicht verwendet werden

Ich habe die Befehlszeilentools installiert:

$ xcode-select --print-path
/Library/Developer/CommandLineTools

Wenn jedoch irgendetwas versucht, xcodebuild zu verwenden, erhalte ich den folgenden Fehler:

$ /usr/bin/xcodebuild
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

Auf Mountain Lion war es möglich, dies zu verwenden, ohne den gesamten Xcode zu installieren, sondern nur die Befehlszeilentools. Ist das bei Mavericks möglich? Wie kann ich es zum Laufen bringen?

N.B. Dies ist eine Neuinstallation von Mavericks.

pdate: Nur um zu zeigen, dass ich die Befehlszeilentools installiert habe:

$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-Apple-darwin13.0.0
Thread model: posix
92
user1082754

Ich weiß, dass dies eine späte Antwort ist, aber in meinem Fall hat dieser Befehl das Problem gelöst:

Sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
58
Juanan

Offenbar hat OSX xcodebuild so geändert, dass XCode installiert werden muss, bevor es ordnungsgemäß funktioniert, wenn nur die OSX-Befehlszeilentools installiert sind.

Alte halbbezogene Antwort

Viele Leute sind mit Node darauf gestoßen. Das Build-Tool des Knotens, gyp, verwendet xcodebuild, um das Kompilieren von Knotenpaketen vorzubereiten. Mavericks hat das Verhalten von xcodebuild geändert, sodass es mit gyp nicht mehr richtig funktioniert. Dies wird gerade behoben. Siehe das Node-Gyp-Problem

Sobald die Änderungen in NPM implementiert wurden, können Sie das neue node-gyp richtig packen und kompilieren. Sie müssen auch Ihre NPM-Version aktualisieren, sobald die Änderungen in NPM übernommen wurden.

19
loganfsmyth

Gehen Sie zuerst zum Finder, wählen Sie dann im linken Fenster Anwendungen aus, suchen Sie nach Xcode und prüfen Sie, ob der Name Xcode oder Xcode-Beta ist

Wenn der Name Xcode-Beta ist, geben Sie diesen Befehl im Terminal ein:

Sudo xcode-select -switch /Applications/Xcode-Beta.app/Contents/Developer

Wenn der Name Xcode ist, geben Sie diesen Befehl ein:

Sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Hoffe, diese Antwort könnte Benutzern mit einer Beta-Version von Xcode helfen

Vielen Dank

15
Muhammed Irfan

Dieses Problem wurde dadurch verursacht, dass xcode-select Entwicklerverzeichnis auf /Library/Developer Zeigte, das nur den Ordner CommandLineTools enthielt. Zu diesem Zweck wird in der Fehlermeldung beanstandet, dass das Verzeichnis nicht mit Xcode identisch ist.

Zwei getestete Lösungen:

  1. Xcode (neu) installieren.

  2. Zeigen Sie mit dem folgenden Befehl xcode-select in das Xcode Developer Directory :

    Sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
    

Referenzen:

So beheben Sie Fehler wie "xcode-select: error: tool 'xcodebuild' erfordert Xcode, aber aktives Entwicklerverzeichnis * BROKEN LINK *

xcode-select active developer directory error

10
carlodurso

Ich habe Xcode aus dem App Store neu installiert, wodurch dieses Problem behoben wurde. Ich vermute, meine vorherige Installation ist nicht vollständig installiert

1
zinking

Heute hatte ich dieses Problem und das Problem war, dass ich eine manuelle Installation von xcode verwendete und die Datei Xcode8.3.2.app anstelle von Xcode.app hatte. Das Umbenennen der App behebt das Problem der Beschwerde bei xcode-select. Dies scheint darauf hinzudeuten, dass der reguläre App-Name im Suchpfad enthalten ist, Varianten jedoch nicht.

0
AnneTheAgile

Es gibt auch eine GUI, mit der Sie den Pfad der Befehlszeilentools unter Xcode> Einstellungen> Speicherorte ändern können:

Xcode > Preferences > Locations

Ich hatte gerade dieses Problem nach dem Upgrade auf Xcode 10.3, während ich eine ältere Version von 10.2.1 in einem Unterordner von Applications aufbewahrte. Als ich dieses Fenster "Speicherorte" öffnete, war die Auswahl für die Befehlszeilentools leer, aber ich konnte zwischen den beiden installierten Versionen wählen:

Command Line Tools selection dropdown

Ich tendiere dazu, die GUI-Option zu wählen, wenn sie verfügbar ist, anstatt Sudo Befehle von SO zu kopieren.

0
suite22

Wenn Sie XCode2 verwenden: Sudo xcode-select --switch/Applications/Xcode\2.app/Contents/Developer

Achten Sie auf das "\", um den Raum zu verlassen.

0
turibbio