How to use the command 'xcrun' (with examples)
- Osx
- December 25, 2023
The command ‘xcrun’ is a powerful tool in macOS that allows you to run or locate development tools and properties. It is commonly used by developers to access command-line tools and manage their SDKs and toolchains.
Use case 1: Find and run a tool from the active developer directory
Code:
xcrun swift --version
Motivation: The motivation for using this example is to check the version of the Swift programming language installed on the system.
Explanation: ‘xcrun’ is used to locate and run a tool, in this case ‘swift’. The “–version” argument is used to display the version of the tool.
Example output:
Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)
Target: x86_64-apple-darwin20.2.0
Use case 2: Show verbose output
Code:
xcrun git clone <repository> --verbose
Motivation: The motivation for using this example is to see detailed output while cloning a Git repository.
Explanation: The “–verbose” argument is used to show detailed output when running the ‘git clone’ command using ‘xcrun’.
Example output:
Cloning into 'repository'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (75/75), done.
Receiving objects: 100% (100/100), 1.00 MiB | 1.76 MiB/s, done.
...
Use case 3: Find a tool for a given SDK
Code:
xcrun --sdk iphoneos clang --version
Motivation: The motivation for using this example is to check the version of the Clang compiler for the iPhoneOS SDK.
Explanation: The “–sdk iphoneos” argument is used to specify the SDK for which the tool should be found. The tool in this case is ‘clang’, and the “–version” argument is used to display its version.
Example output:
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: arm64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Use case 4: Find a tool for a given toolchain
Code:
xcrun --toolchain swift clang --version
Motivation: The motivation for using this example is to check the version of the Clang compiler for the Swift toolchain.
Explanation: The “–toolchain swift” argument is used to specify the toolchain for which the tool should be found. The tool in this case is ‘clang’, and the “–version” argument is used to display its version.
Example output:
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: x86_64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Use case 5: Display version
Code:
xcrun --version
Motivation: The motivation for using this example is to quickly check the version of ‘xcrun’.
Explanation: The “–version” argument is used to display the version of ‘xcrun’ itself.
Example output:
xcrun version 46
Use case 6: Display help
Code:
xcrun --help
Motivation: The motivation for using this example is to get help and information about the usage of the ‘xcrun’ command.
Explanation: The “–help” argument is used to display the help information for ‘xcrun’.
Example output:
Usage: xcrun [options] <toolname> [... <args>]
...
Conclusion:
The ‘xcrun’ command is a versatile tool for developers on macOS, allowing them to run or locate various development tools and properties. By using the examples provided, users can check versions, access tools from specific SDKs or toolchains, and get detailed output when needed. Understanding and utilizing the different arguments and options available with ‘xcrun’ can greatly enhance a developer’s workflow.