我已经使用mdfind
命令已有一段时间了,以便能够在构建时找到正确的Xcode版本。这样一来,我们便可以在构建机器上的任何位置安装任意数量的Xcode版本,然后根据每个分支和每个产品指定所需的版本。
这在我的个人工作站以及我最常使用的构建机器上都很好用。但是,当我尝试在同事的构建计算机上部署完全相同的脚本时,mdfind
有时仅返回结果列表。通常,它返回一个空字符串。可以通过重新启动问题机器来暂时解决此问题,但是出于各种原因,我的同事还是希望使其继续运行。我已经检查了有问题的机器,并验证了我们实际上希望安装的Xcode版本确实存在,但是mdfind
有时看不到任何版本。
为什么mdfind
有时只会返回一个空字符串?
有问题的命令是这样的:
mdfind kMDItemCFBundleIdentifier="com.apple.dt.Xcode" \&\& kMDItemVersion="${MY_XCODE_VERSION}"
当上述版本执行此操作时,该版本还将返回一个空字符串:
mdfind kMDItemCFBundleIdentifier="com.apple.dt.Xcode"