如何以编程方式检测Mac OS X Server Edition?

问题描述:

有没有人知道任何API可以帮助区分Mac OS X“服务器版”和“桌面版”? 我的应用程序应该知道它当前运行在哪个版本的Mac OS X上。 (服务器或桌面)如何以编程方式检测Mac OS X Server Edition?

如果您的应用程序需要知道这一点的真实原因,我建议您检查是否存在能够在桌面/服务器上发挥作用的组件。例如,如果服务器版本附带程序或库foo且桌面版本没有,并且您想要使用foo,则检查foo的存在(和/或版本),而不是试图从服务器与桌面操作系统

(同时,一个可能的出发点,以检查操作系统版本是命令sw_verssystem_profiler SPSoftwareDataType。)

也许你可以找到使用sysctl API的差异,或Gestalt

+0

我已经检查了这个API,但不幸的是我没有找到任何合适的标志或参数来允许这样做。 (格式塔有数百个标志,我没有找到适合这个任务的正确标志) – killerovsky 2010-04-15 13:08:40

sw_vers似乎通过做检查/System/Library/CoreServices/ServerVersion.plist - 你可能会看到文件是否存在。

+0

这实际上是我的经验中苹果关心的东西中的一小部分。 – 2010-04-23 18:40:34