如何在运行脚本阶段停止XCode替换系统命令?

时间:2013-10-29 08:53:06

标签: xcode bash sdk command

我的情况: OSX 10.9 + Xcode 4.6.3 +运行脚本阶段+脚本:

#!/bin/bash

/usr/bin/svn --version
ls -la /usr/bin/svn
exit 1

我收到了输出:

svn, version 1.6.18 (r1303927)
-rwxr-xr-x  1 root  wheel  14224 26 oct 05:08 /usr/bin/svn

这令人难以置信。真实文件的大小和日期与v1.7.10(实际上位于路径/usr/bin/svn)相对应,但是在XCode中调用此文件将调用/Application/Xcode463.app/Content/Developer/usr/bin/svn命令!

我该怎样防止这种情况?如何调用默认的/usr/bin/svn命令? 如何在不替换真实文件的情况下用另一个命令隐藏替换一个命令?

1 个答案:

答案 0 :(得分:0)

正确答案是/usr/bin/svn是指向xcrun包装器的链接。命令看到它:

nm /usr/bin/svn

因此问题的根本原因是下一个命令:

xcode-select --print-path

在运行脚本阶段将打印当前Xcode而不是系统默认Xcode。