如何使用当前的Xcode/Mac OS X v10.8 (Mountain Lion)或更高版本安装命令行构建工具?

与Xcode不同,它没有安装程序,只是一个包。

看起来所有的命令行工具都在包中,在Contents/Developer下面,但是没有设置适当的环境变量来使用它们。

是否有一个脚本,我可以运行,将设置我的环境,以支持从命令行构建?


当前回答

如何获得安装在Xcode 4.4 / Mac OS X v10.8 (Mountain Lion)或更高版本的命令行构建工具?

对于OS X 10.9,你只需安装Xcode。命令行工具与Xcode捆绑在一起。技术说明TN2339,从命令行构建Xcode常见问题解答:

在OS X 10.9版本的Xcode中,无法下载命令行工具。如何在我的机器上安装它们?

In OS X 10.9, the Downloads pane of Xcode Preferences does not support downloading command-line tools. Use any of the following methods to install command-line tools on your system: If Xcode is installed on your machine, then there is no need to install them. Xcode comes bundled with all your command-line tools. OS X 10.9 includes shims or wrapper executables. These shims, installed in /usr/bin, can map any tool included in /usr/bin to the corresponding one inside Xcode. xcrun is one of such shims, which allows you to find or run any tool inside Xcode from the command line. Use it to invoke any tool within Xcode from the command line. ...

其他回答

尝试进入Xcode > Preferences…>下载并单击命令行工具旁边有向下箭头的圆形按钮。

您可以在bash中自动安装命令行工具。在自动化开发人员入职设置过程时,我需要这样做。

xcode-select --install && sleep 1
osascript -e 'tell application "System Events"' -e 'tell process "Install Command Line Developer Tools"' -e 'keystroke return' -e 'click button "Agree" of window "License Agreement"' -e 'end tell' -e 'end tell'

Xcode命令行工具可以从这里下载:https://developer.apple.com/downloads/index.action#

2014年4月版直接下载链接(适合想马上上手的开发人员) https://developer.apple.com/downloads/download.action?path=Developer_Tools/command_line_tools_os_x_mavericks_for_xcode__april_2014/command_line_tools_for_osx_mavericks_april_2014.dmg

如何获得安装在Xcode 4.4 / Mac OS X v10.8 (Mountain Lion)或更高版本的命令行构建工具?

对于OS X 10.9,你只需安装Xcode。命令行工具与Xcode捆绑在一起。技术说明TN2339,从命令行构建Xcode常见问题解答:

在OS X 10.9版本的Xcode中,无法下载命令行工具。如何在我的机器上安装它们?

In OS X 10.9, the Downloads pane of Xcode Preferences does not support downloading command-line tools. Use any of the following methods to install command-line tools on your system: If Xcode is installed on your machine, then there is no need to install them. Xcode comes bundled with all your command-line tools. OS X 10.9 includes shims or wrapper executables. These shims, installed in /usr/bin, can map any tool included in /usr/bin to the corresponding one inside Xcode. xcrun is one of such shims, which allows you to find or run any tool inside Xcode from the command line. Use it to invoke any tool within Xcode from the command line. ...

如果你在尝试使用命令行工具时查看“控制台”,你会发现实际上有一个到Mountain Lion命令行工具的“非官方”链接!

所以试试吧:

http://adcdownload.apple.com/ios/ios_simulator__resigned/cltools_mountainliondp2_march12.dmg

这是我的控制台日志:

01/04/2012 15:41:54.258 Xcode: [MT] DVTDownloadable: Download failed. Downloadable: {
    dependencies =     (
    );
    fileSize = 141452226;
    identifier = "Xcode.CLTools.10.8";
    name = "Command Line Tools";
    source = "http://adcdownload.apple.com/ios/ios_simulator__resigned/cltools_mountainliondp2_march12.dmg";
    userInfo =     {
        ActivationPredicate = "$MAC_OS_X_VERSION >= '10.8.0' && $MAC_OS_X_VERSION < '10.9.0'";
        InstallPrefix = "/";
        InstalledIfAllSHA1SumsMatch =         {
            "/usr/bin/clang" = 600c35175775a6002452a88f17e00c570cd2e2d0;
        };
        Summary = "Before installing, note that from within Terminal you can use the XCRUN tool to launch compilers and other tools embedded within the Xcode application. Use the XCODE-SELECT tool to define which version of Xcode is active.  Type \"man xcrun\" from within Terminal to find out more.\n\nDownloading this package will install copies of the core command line tools and system headers into system folders, including the LLVM compiler, linker, and build tools.";
        "Xcode.SDKs" =         (
        );
    };
    version = "1.1.1";
}. Error: Error Domain=NSCocoaErrorDomain Code=3840 "The data couldn’t be read because it has been corrupted." (Encountered unknown ampersand-escape sequence at line 18) UserInfo=0x401bc8e60 {NSDebugDescription=Encountered unknown ampersand-escape sequence at line 18, kCFPropertyListOldStyleParsingError=The data couldn’t be read because it has been corrupted.}