在使用迁移助手将数据从旧Mac迁移到新Mac之后,我不再可以使用Xcode命令行工具。每当我在终端上运行任何xcodebuild
命令(甚至没有参数的xcodebuild
)时,都会出现以下错误:
dyld: Library not loaded: @rpath/DVTFoundation.framework/Versions/A/DVTFoundation
Referenced from: /usr/bin/xcodebuild
Reason: image not found
Abort trap: 6
运行which xcodebuild
会得到/usr/bin/xcodebuild
。
运行xcode-select -p
会得到/Applications/Xcode.app/Contents/Developer
。
奇怪的是,如果我去/Applications/Xcode.app/Contents/Developer/usr/bin
并打电话给./xcodebuild
,我不会收到上述错误。
这是我尝试过的:
xcode-select --install
安装命令行工具。/Library/Developer/CommandLineTools/
中的命令行工具。sudo xcode-select --switch /Library/Developer/CommandLineTools/
。sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
。这些都不能解决我的问题。
我正在运行Xcode 9.4.1和macOS High Sierra 10.13.5。
我尝试遵循this guide来完全卸载Xcode和所有命令行构建工具。奇怪的是,一旦执行了所有步骤,运行xcodebuild
命令就会产生与以前相同的结果。并且xcodebuild
仍位于/usr/bin
中。
如果我使用xcode-select --install
安装命令行工具,并从该位置转到/Library/Developer/CommandLineTools/usr/bin
运行xcodebuild
,则会产生相同的错误。因此,运行预装有Xcode的xcodebuild
不会产生任何错误,但是命令行工具中的确会产生错误。令人费解的是,还建议当我尝试删除所有命令行工具时,/usr/bin
中剩下的那些是Xcode所没有的。
我尝试删除它们,但是即使使用sudo
命令也无法成功。
我找到了一种解决方法。为了确保xcodebuild
命令使用的是/Applications/Xcode.app/Contents/Developer/usr/bin
中的工具,而不是/usr/bin
中的工具,我在.bash_profile
中添加了以下行:
export PATH="/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH"
这种方法有效,但我的问题仍然存在。我不明白为什么我首先遇到这个问题。我已经仔细检查过-我的PATH
在旧Mac上不包含/Applications/Xcode.app/Contents/Developer/usr/bin
,在那里一切正常。
由于某种原因,位于xcodebuild
的{{1}}损坏了,无法以任何方式进行更新。