xcrun: 错误:无效的活动开发者路径,Flutter 在 zsh 更新后出现问题

18

我更新了我的shell到zsh,当我输入flutter --version时,会得到以下输出:

'''xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools),   
missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Failed to find the latest git commit date: VersionCheckError: Command exited
with code 1: git -c log.showSignature=false log -n 1 --pretty=format:%ad
--date=iso
Standard out: 
Standard error: xcrun: error: invalid active developer path
(/Library/Developer/CommandLineTools), missing xcrun at:
/Library/Developer/CommandLineTools/usr/bin/xcrun

Returning 1970-01-01 01:00:00.000 instead.
Flutter 0.0.0-unknown • channel unknown • unknown source
Framework • revision  () • 1970-01-01 01:00:00.000
Engine • revision b8752bbfff
Tools • Dart 2.10.2'''

我该怎么办?我对这些事情不是专家XD。

顺颂时祺,


5个回答

65

看起来错误信息是关于Xcode CLI工具的?如果是这样,请尝试使用以下命令重置它:


错误信息似乎与Xcode CLI工具有关?如果是,请尝试使用以下命令进行重置:

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

3
谢谢!这正是我所需要的。 - Jamie
Ventura 抱怨 error: invalid developer directory '/Library/Developer/CommandLineTools/' - Shanimal
只需执行第一步 xcode-select --install,问题就解决了。 - AliA

45

看起来命令行工具路径未设置。如果您有XCode,则需要按照以下步骤设置路径:

  1. 打开XCode
  2. 打开偏好设置(,)
  3. 转到位置选项卡
  4. 对于"Command Line Tools",选择当前版本 screenshot showing preference

3
截至2022年9月28日仍然有效,谢谢! - If This Is Art

3

1
如果你使用的是macOS Catalina,并且想通过命令行/终端进行操作,或者上述解决方案无法解决问题,请尝试以下步骤:
  1. 禁用SIP(需要通过恢复模式完成)
  2. 创建一个软链接,将你的“Developer”目录(其中包含CommandLineTools目录/实例brew正在搜索的目录)链接起来,方法是运行:sudo ln -s /path/to/Developer /path/to/Xcode.app/Contents
  3. 运行内置于brew中的simlinker,让brew知道CommandLineTools实例所在的位置(brew默认支持在同一目录下运行两个实例,并且由于逻辑原因而拒绝更新他们的文档进行说明),方法是运行:sudo xcode-select --switch /path/to/new/simlinked/directory/for/CommandLineTools
这是我系统上的一个示例:
  • Xcode最初位于:/Applications/Xcode.app
  • 包含CommandLineTools的Developer目录位于:/Library/Developer
  • 运行:sudo ln -s /Library/Developer /Applications/Xcode.app/Contents/
  • 运行:sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/CommandLineTools
  • 刷新shell (或打开一个新实例),然后运行:brew doctor,收到消息:Your system is ready to brew.

对于我的新客户,我通常会为他们的系统创建这两个别名:

  • alias xbandaid="sudo xcode-select --reset" #当权限可能不足时使用
  • alias xfix="sudo ln -s /Library/Developer /Applications/Xcode.app/Contents/ && sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/CommandLineTools" #按照上述方法修复
我将这些别名放在他们的bash/zsh配置文件中,对于Catalina系统来说,如果他们使用ZSH,则通常是.zshrc.zprofile,如果他们使用BASH,则是.bashrc.bash_profile
免责声明:虽然我已经尝试过在"BigSur"客户端上成功运行,但我不能保证这对您的安装也有效。对于MacPorts和pkgsrc(也称为Joyent Software/NetBSD Samsung Group发布的pkgin),情况也是如此。它们都适用于我的客户和我,但请自行决定。

0

我得到了帖子的帮助

你必须运行sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer来让终端使用Xcode内部的命令行工具


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