系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

xcode-select

切换 macOS 当前使用的 Xcode 或命令行工具目录,并安装命令行工具。

补充说明

xcode-select -p 打印当前 developer 目录,所有 xcrun、clang、make、git 等 shim 都以它为基准。两个常见路径是:只装命令行工具时的 /Library/Developer/CommandLineTools,以及完整 Xcode 的 /Applications/Xcode.app/Contents/Developer。切换用 sudo xcode-select --switch 路径,路径必须指到 Contents/Developer,不能只写 .app。

xcode-select --install 会弹出图形安装器,装的是 Command Line Tools(CLT),不包含完整 Xcode、iOS SDK 和 xcodebuild;CLT 的许可证在安装器里同意,不需要再跑 xcodebuild。若是完整 Xcode,切换后还要 sudo xcodebuild -license accept,新版 Xcode 首次运行还需 sudo xcodebuild -runFirstLaunch 安装附加组件。许可证未接受时,编译会报 “You have not agreed to the Xcode license agreements”。

无图形界面的 CI 上,--install 可能报 “Can't install the software because it is not currently available from the Software Update server”。可以先用 softwareupdate --list 找到 Command Line Tools 条目再 softwareupdate -i,或从 Apple Developer 下载页手动安装。切换 Xcode 后若工具仍指向旧路径,用 sudo xcode-select --reset 恢复默认,或检查 DEVELOPER_DIR 环境变量是否覆盖了全局设置。

常用示例

# 查看当前生效的 developer 目录
% xcode-select -p

# 打开命令行工具安装器(只装 CLT,不含完整 Xcode)
% xcode-select --install

# 确认 CLT 包是否真的装上及版本
% pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

# 切换到完整 Xcode
% sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

# 完整 Xcode 首次使用:接受许可证并安装附加组件
% sudo xcodebuild -license accept
% sudo xcodebuild -runFirstLaunch

# 恢复默认路径,Xcode 被移动或删除后常用
% sudo xcode-select --reset

# 只对当前命令临时指定 Xcode,不改全局设置
% DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer xcrun --find clang

# 无图形界面时查找可安装的 Command Line Tools
% softwareupdate --list

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. xcode-select -p 的输出决定了什么?
  2. xcode-select --install 装完后为什么 xcodebuild 仍不可用?
  3. Xcode 被移动后路径失效,怎样恢复?
答案
  1. 它决定 xcrun、clang、make 等工具从哪个 developer 目录解析,也决定 xcodebuild 使用哪套 Xcode/CLT。
  2. --install 只安装 Command Line Tools,不包含完整 Xcode 和 xcodebuild;需要安装 Xcode 并用 --switch 指过去。
  3. 用 sudo xcode-select --switch 新路径/Contents/Developer 指向新位置,或 sudo xcode-select --reset 回到默认 CLT。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令