我已经安装了命令行工具:
$ xcode-select --print-path
/Library/Developer/CommandLineTools
但是,当任何尝试使用 xcodebuild
时,我收到以下错误:
$ /usr/bin/xcodebuild
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
在 Mountain Lion 上,无需安装整个 Xcode 即可使用它,而无需安装命令行工具。在小牛队可以做到这一点吗?我怎样才能让它工作?
注意这是对 Mavericks 的全新安装。
更新:只是为了显示,我确实安装了命令行工具:
$ 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
node-gyp
上创建了一个问题,因为这是我的问题的根源:github.com/TooTallNate/node-gyp/issues/341
xcode-select --install
。安装 Xcode xcode-select --print-path
打印 /Applications/Xcode.app/Contents/Developer
我知道这是一个迟到的答案,但在我的情况下,这个命令解决了这个问题:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
似乎 OSX 已将 xcodebuild
更改为需要安装 XCode
,而之前只安装了 OSX 命令行工具即可正常运行。
旧的半相关答案
许多人在使用 Node.js 时遇到了这个问题。 Node 的构建工具 gyp
使用 xcodebuild
准备编译节点包。 Mavericks 已更改 xcodebuild
的行为,使其不再与 gyp
一起正常工作。目前正在修复此问题。 See the node-gyp issue
将更改部署到 NPM 后,您将能够安装新的 node-gyp
包并正确编译。将更改合并到 NPM 后,您还需要更新 NPM 版本。
请先进入 finder,然后从左侧面板中选择 Applications,然后查找 Xcode,并检查其名称是 Xcode 还是 Xcode-Beta
如果名称是 Xcode-Beta,则在终端中输入以下命令:
sudo xcode-select -switch /Applications/Xcode-Beta.app/Contents/Developer
如果名称是 Xcode,则输入以下命令:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
希望这个答案可能对使用 Beta 版 Xcode 的用户有所帮助
谢谢
此问题是由于 xcode-select 开发者目录 指向 /Library/Developer
,它只包含文件夹 CommandLineTools
。为此,错误消息抱怨不是目录与 Xcode 不同。
两种经过测试的解决方案:
(重新)安装 Xcode。使用以下命令将 xcode-select 指向 Xcode 开发者目录:sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
参考:
xcode-select active developer directory error
我从 App Store 重新安装了 Xcode,解决了这个问题。我猜我之前的安装是不完整的安装
还有一个 GUI 可以更改 Xcode > Preferences > Locations 中的命令行工具路径:
https://i.stack.imgur.com/KxTvb.png
我在升级到 Xcode 10.3 后遇到了这个问题,同时在 Applications 的子文件夹中保留了 10.2.1 的旧副本。当我打开这个位置面板时,命令行工具的选择是空白的,但我可以在安装的两个版本之间进行选择:
https://i.stack.imgur.com/FsyrH.png
如果它可用,我倾向于使用 GUI 选项,而不是从 SO 复制 sudo
命令。
如果您使用 XCode2:sudo xcode-select --switch /Applications/Xcode\ 2.app/Contents/Developer
注意“\”转义空格。
今天我遇到了这个问题,问题是我使用的是手动安装的 xcode,并且文件名为 Xcode8.3.2.app 而不是 Xcode.app。重命名应用程序修复了 xcode-select 抱怨的问题。这似乎表明常规 appname 在其搜索路径上,但变体不在。
AFAIK,Mavericks 中的命令行工具安装在 /Applications/Xcode.app/Contents/Developer 中,这往往意味着需要 Xcode。可能是未记录的功能。