我的情况: 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
命令?
如何在不替换真实文件的情况下用另一个命令隐藏替换一个命令?
答案 0 :(得分:0)
正确答案是/usr/bin/svn
是指向xcrun
包装器的链接。命令看到它:
nm /usr/bin/svn
因此问题的根本原因是下一个命令:
xcode-select --print-path
在运行脚本阶段将打印当前Xcode而不是系统默认Xcode。