如何通过命令行更新Xcode

588

我正在尝试通过命令行更新Xcode。最初,我尝试运行:

 xcode-select --install

导致产生了这条消息:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

那么问题仍然是,有没有一种方法可以通过命令行更新Xcode?


@RohitPradhan 这个可行吗? - psvj
@psjv ...还没有尝试过, - Rohit Pradhan
显然,你可以从应用商店安装... 但是我有一种预感,使用终端命令比使用应用商店(GUI?)更快更有效。有人能够进一步发展这个想法吗?我把GUI放在括号里,因为我不知道我是否使用了正确的术语。 - Bozeyman9000
Rohit Pradhan的回答中的ehow链接应该被移除。截至2022年2月13日,它重定向到一个无关的网站(itstillworks[.]com),该网站被一些扫描器标记为恶意软件... https://www.virustotal.com/gui/url/47302079f5deb758e55993ccd4eb8d15f0a2b4f55938c96c29161053ddd41a36?nocache=1 和 https://www.urlvoid.com/scan/itstillworks.com/ - Jonathan Dagle
21个回答

833
你实际上使用的是安装Xcode命令行工具的命令 - xcode-select --install。因此,你得到的错误消息是 - 工具已经安装。
更新Xcode所需的命令是softwareupdate command [args ...]。你可以使用softwareupdate --list查看可用内容,然后使用softwareupdate --install -a安装所有更新或softwareupdate --install <product name>仅安装Xcode更新(如果有可用的)。你可以从列表命令中获取名称。
正如评论中提到的,这里softwareupdate工具的man页面。 2019年更新 许多用户遇到了问题,softwareupdate --install -a实际上不能更新到最新版本的Xcode。造成这种情况的原因很可能是有待处理的macOS更新(正如@brianlmerritt在下面指出的那样)。在大多数情况下,先更新macOS就可以解决问题,并允许更新Xcode更新Xcode命令行工具 许多用户尝试更新Xcode命令行工具而来到了这个答案。最简单的方法是删除旧版本的工具,然后安装新版本。
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

一个弹出窗口将出现并引导您完成其余的过程。


9
对于某些原因,我的 App Store 中列出了更新,但在命令行中没有列出。 - Gino Pane
6
--list 和 --install -a +1 - Jacksonkr
94
经过测试,“softwareupdate --install -a”甚至不能更新Xcode,因此答案似乎完全是错误的。 - Charlie Gorichanaz
5
运行命令softwareupdate -i -r只安装了“[推荐]”安装包,即命令行工具。它下载了两次,安装了一次,然后完成了安装。 由于它没有解决问题,我重新运行了 softwareupdate --list 命令,但是推荐内容仍然存在。在应用商店中,软件更新选项消失然后又重新出现。当我尝试通过应用商店进行更新时,要求我接受用户条款。接受后,更新好像成功了。 再次运行 softwareupdate --list 命令,发现它仍被推荐更新。 - GMarx
9
问题可通过以下命令解决:sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install请注意,此处仅为翻译,不提供任何解释或其他内容。 - Adiaos
显示剩余13条评论

322

我曾经遇到相同的问题,通过以下步骤解决:

  1. 删除旧工具 ($ sudo rm -rf /Library/Developer/CommandLineTools)
  2. 重新安装Xcode命令行工具 ($ xcode-select --install)。

完成以上步骤后,您将看到一个弹出框,提示安装新版本的工具。


3
谢谢你,这个解决方案对我也有用。我花了一整天的时间来尝试克服这个问题。 - Adebayo
2
@AryanVenkat 为什么会有风险?你可以随时重新安装它们。 - ipinak
2
这对我来说似乎有效:命令运行时没有错误,弹出窗口完成了,还安装了一个新的/Library/Developer/CommandLineTools目录。然而,新目录也已经过时(来自Xcode 7.3而不是当前的9.4),所以它没有解决我的问题。最终我在https://developer.apple.com/download/more/上搜索开发者工具,并从那里下载了`Command_Line_Tools_macOS_10.13_for_Xcode_9.4.1`。 - jbyler
28
我只能通过添加sudo来删除/Library/Developer/CommandLineTools,因此它变成了sudo rm -rf /Library/Developer/CommandLineTools - George
3
@ipinak,我在 https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md 文档中发现了 sudo rm -rf $(xcode-select -print-path) 命令,因此您不需要删除所有命令行工具,因为这似乎有些过度。 - mtx
显示剩余12条评论

82

当我卸载完整版Xcode以重新安装CLI版本时,我遇到了相同的问题。我的解决方法是:

sudo xcode-select -s /Library/Developer/CommandLineTools


1
有时候,蛮力方式是最简单和最不复杂的方式(尤其是在苹果系统中),但最终仍然得到了旧版本。 - nhed
1
在将设备升级到Catalina后,我无法安装cocoapods,直到进行了以下操作。但似乎这导致了进一步的问题,xcodebuild需要xcode,但活动开发人员目录'/Library/Developer/CommandLineTools'是一个命令行工具实例。然后我不得不运行'sudo xcode-select -r'来重置命令行工具路径。 - Lawrence Weru

38
安装完命令行工具(使用 xcode-select --install),输入以下命令:
sudo xcode-select --switch /Library/Developer/CommandLineTools/

现在,您应该能够运行git:

10:29 $ git --version
git version 2.17.2 (Apple Git-113)

2
这个救了我的命——这个方法在2019年仍然有效,因为其他答案已经失效。 - Nick
1
我可以确认,在最新版本的Mac Catlina(10.15.4(19E287))中,这对我有效。 - Gaurav Sarma
适用于Big Sur 11.2.2版本。 - Kshitij Bajracharya
也适用于我。谢谢。 - malik kurosaki
这也解决了我在pyenv install中遇到的错误(configure: error: C compiler cannot create executables)。 - RCB
显示剩余2条评论

28

删除Xcode后,我遇到了这个错误。通过使用sudo xcode-select -r重新设置命令行工具路径来解决它。

之前:

navin@Radiant ~$ /usr/bin/clang
xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist
Use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools, or use `xcode-select --install` to install the standalone command line developer tools.
See `man xcode-select` for more details.

navin@Radiant ~$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

之后:

navin@Radiant ~$ /usr/bin/clang
clang: error: no input files

2
这对我解决了问题。我也删除了Xcode并遇到了上述错误。虽然我尝试按照其他答案中的建议仅重新安装命令行工具,但最终还是这个方法解决了问题。 - Ryan Marten
1
完全相同的情况,这个方法非常有效。谢谢! - txedo
1
我删除了Xcode,但仍然遇到了同样的问题,只有这个答案解决了我的问题。 - user6268172

21

我不能说这个答案本身就是正确的,因为我也尝试了这里提供的许多其他解决方案,但只有在使用了这个解决方案之后,问题才得以解决,谢谢! - alexexchanges
1
这个程序包必须存在才能正常工作。在我的 Xcode 版本中,它并不存在。(macOS 10.15 升级后) - John Perry

18

我不确定为什么这对我来说如此棘手。

sudo xcode-select --install

对我来说没有任何帮助。

softwareupdate --all --install --force

对我没有任何帮助。

我必须按以下顺序执行任务。

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

这安装了新版本的Xcode,但不是最新版本。

然后我进行了以下操作:

softwareupdate --all --install --force

他们进行了完全的更新。


2
这在 macOS Monterey v 12.3.1 上运行正常。 - Micah Stubbs
对我来说在 Monterey 12.6 上有效。 - Oleg O

13
$ sudo rm -rf /Library/Developer/CommandLineTools
$ xcode-select --install

8
在回答一个已有答案的老问题时,指出你的答案涉及到哪些新方面是有用的,同时也要考虑时间流逝和新版本发布是否对答案产生影响。 - Jason Aller
确认此方法在Mac OS Catalina beta上可行。当您批准访问后,它会启动一个安装窗口以下载所需的软件。 - Jas
确认在Catalina操作系统上无法运行。或者High Sierra。或者Sierra...(样本大小:整个部门) - Jason

13

我也遇到了同样的问题,通过使用以下命令来解决它。

sudo xcode-select -s /Library/Developer/CommandLineTools

运行上述命令后,然后运行 xcode-select -p 命令,结果显示如下。

/Library/Developer/CommandLineTools


我在各处搜索,而你帮了我一把! - Neethu Lalitha
不确定为什么,但在运行第一个答案的命令后,再运行这个命令后,它开始对我起作用了。 - Dr. Freddy Dimethyltryptamine
这应该是被接受的答案。 - jrc

11
@Vel Genov的答案是正确的,但是如果Xcode的版本不能更新,因为它是您当前Mac OS版本的最新版本,则需要升级Mac OS。如果您知道有一个更新的Xcode(例如,它无法将应用程序加载到具有最新iOS版本的设备上),则必须先升级Mac OS。
对于像我这样的老Mac Pro 5.1用户,需要安装金属GPU(我的情况下为Sapphire AMD Radeon RX 560),但请确保只安装HDMI监视器(不是4K!只能是1080)。然后,安装Mojave时会显示需要固件更新并关闭计算机。长按电源按钮2分钟后,所有都可以很好地升级!
Catalina更新 - 如果有待处理的更新(比如您在夜间选择更新Xcode),那么“softwareupdate --install -a”命令行不会升级xcode。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接