无法在安装了命令行工具的 Mavericks 上使用 xcodebuild

Posted

技术标签:

【中文标题】无法在安装了命令行工具的 Mavericks 上使用 xcodebuild【英文标题】:Unable to use xcodebuild on Mavericks with Command Line Tools installed 【发布时间】:2013-11-05 12:25:04 【问题描述】:

我已经安装了命令行工具:

$ 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。这就是我的 gcc --version 的样子 配置: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms /MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 Apple LLVM 版本 5.0 (clang-500.2.79)(基于 LLVM 3.3svn)目标:x86_64-apple-darwin13。 0.0 线程模型:posix 也许你是对的,奇怪的是安装了命令行工具的 Mountain Lion 上没有必要。 我假设你做了xcode-select --install。安装 Xcode 后 xcode-select --print-path 打印 /Applications/Xcode.app/Contents/Developer 【参考方案1】:

AFAIK,Mavericks 中的命令行工具安装在 /Applications/Xcode.app/Contents/Developer 中,这往往意味着需要 Xcode。可能是未记录的功能。

【讨论】:

【参考方案2】:

似乎 OSX 已将 xcodebuild 更改为需要安装 XCode,而之前只安装了 OSX 命令行工具即可正常运行。

旧的半相关答案

很多人在使用 Node.js 时遇到了这个问题。 Node的构建工具gyp使用xcodebuild来准备编译node包。 Mavericks 已更改 xcodebuild 的行为,使其不再与 gyp 一起正常工作。目前正在修复此问题。 See the node-gyp issue

将更改部署到 NPM 后,您将能够安装新的 node-gyp 包并正确编译。将更改合并到 NPM 后,您还需要更新 NPM 版本。

【讨论】:

不知道为什么这与节点链接,我正在尝试用 Xcode 构建其他东西 没错,当你从命令行调用它时,xcodebuild 仍然会触发错误...我实际上从苹果开发者网站developer.apple.com/downloads/index.action#下载了最新的命令行工具【参考方案3】:

我从 App Store 重新安装了 Xcode,解决了这个问题。我猜我之前的安装是不完整的安装

【讨论】:

【参考方案4】:

我知道这是一个迟到的答案,但在我的情况下,这个命令解决了这个问题:

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

【讨论】:

请注意,问题是关于使用命令行工具安装进行构建。通过切换到 Xcode.app,您正在通过 Xcode 构建(问题试图避免安装)。【参考方案5】:

这个问题是由于 xcode-select 开发者目录 指向 /Library/Developer,它只包含文件夹 CommandLineTools。为此,报错信息是抱怨不是目录与Xcode不一样。

两个经过测试的解决方案:

    (重新)安装 Xcode。

    使用以下命令将 xcode-select 指向 Xcode 开发者目录

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

参考文献:

How to fix error like “xcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory * 断开的链接 *

xcode-select active developer directory error

【讨论】:

链接 1 已损坏【参考方案6】:

请先进入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 的用户有所帮助

谢谢

【讨论】:

【参考方案7】:

如果您使用 XCode2: sudo xcode-select --switch /Applications/Xcode\ 2.app/Contents/Developer

注意用“\”转义空格。

【讨论】:

【参考方案8】:

今天我遇到了这个问题,问题是我使用的是手动安装的 xcode,并且文件名为 Xcode8.3.2.app 而不是 Xcode.app。重命名应用程序修复了 xcode-select 抱怨的问题。这似乎表明常规 appname 在其搜索路径上,但变体不在。

【讨论】:

【参考方案9】:

还有一个 GUI 可以在 Xcode > Preferences > Locations 中更改命令行工具路径:

我在升级到 Xcode 10.3 后遇到了这个问题,同时在 Applications 的子文件夹中保留了 10.2.1 的旧副本。当我打开这个位置面板时,命令行工具的选择是空白的,但我可以在安装的两个版本之间进行选择:

如果 GUI 选项可用,我倾向于使用它,而不是从 SO 中复制 sudo 命令。

【讨论】:

以上是关于无法在安装了命令行工具的 Mavericks 上使用 xcodebuild的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ruby​​ 和命令行工具在 Mavericks 中正确安装 cocoapod?

无法使用 Postgres.app 在 Mavericks 中安装 pg gem

Android Studio 无法在 Mac OSX (Mavericks) 上加载 JVM

xcode 命令行工具无法找到 git

无法安装命令行工具,“xcode-select --install”不起作用

查看存储在 Mavericks 或 Yosemite 中的核心数据 [关闭]