BS
BleepingSwift

> Xcode Hidden Command Line Tools

// A guided tour of the 100+ command line utilities bundled inside Xcode that most iOS developers never discover, organized by what they actually do.

XcodeCLITools

Xcode quietly ships with more than a hundred command line tools, and most of them never get a mention in any tutorial or onboarding doc. They live inside the active toolchain, which you can find with:

Bash
ls "$(xcode-select -p)/usr/bin/"

Once you know they exist, a lot of workflows that feel awkward in the GUI become a one liner. Need to symbolicate a crash report from a customer? atos and crashlog. Want to drive the simulator from a script? simctl. Bumping a version number across an entire project? agvtool. The list below organizes everything that comes with current Xcode by what it actually does, so you can scan for the category you need rather than reading an alphabetical dump.

Every tool here is invokable with xcrun <tool> or directly from $(xcode-select -p)/usr/bin/. Most respond to --help, and a few have proper man pages too. Original list and counts come from Terryc21/Xcode-tools.

1

Build and Compilation

  • xcodebuild

    Build, test, archive, and export Xcode projects from the command line. The headless equivalent of every button on the Xcode toolbar.

  • actool

    Compiles asset catalogs (.xcassets) into the runtime binary format used by your app.

  • ibtool

    Compiles, lints, and upgrades storyboards and XIB files. Backs the Interface Builder editor.

  • ibtoold

    A background daemon that ibtool talks to during builds.

  • momc

    Compiles Core Data managed object models (.xcdatamodeld) into the .momd format your app loads at runtime.

  • coremlc

    Compiles and optimizes Core ML models so they can be loaded at runtime with minimal overhead.

  • intentbuilderc

    Compiles App Intents definitions into the runtime metadata that powers Siri and Shortcuts integration.

  • mapc

    Compiles Core Data mapping models used during lightweight migrations between schema versions.

  • compileSceneKitShaders

    Precompiles SceneKit Metal shaders so they do not have to be compiled at first use.

  • copypng

    Copies and optimizes PNG files during the build phase, including premultiplying alpha for the iOS device runtime.

  • copySceneKitAssets

    Copies and processes SceneKit asset catalogs into the format the runtime expects.

  • iphoneos-optimize

    Converts plists to binary format and optimizes PNG files inside an app bundle. Run automatically during release builds.

  • ld

    Apple's linker. Combines compiled object files into a final executable, framework, or dylib.

  • gcc and g++

    Front ends to the Clang compiler for C, C++, and Objective-C source. Despite the name, these are not GNU GCC.

  • bitcode-build-tool

    Used by the App Store to rebuild apps from their bitcode representation. Mostly historical now.

2

Testing and Code Quality

  • xcresulttool

    Reads .xcresult bundles and emits structured JSON. Useful for parsing test output in CI without scraping logs.

  • xctest

    Runs an XCTest bundle directly without going through xcodebuild. The same runner Xcode invokes when you press Cmd+U.

  • xctrace

    Records Instruments traces from the command line so you can profile apps in CI or on a build server.

  • xccov

    Reads code coverage data out of .xcresult bundles. Often used to gate PRs on coverage thresholds.

  • amlint

    Lints and validates asset catalogs to catch missing image variants and other problems before they reach a build.

3

Debugging and Profiling

  • lldb

    The debugger that powers everything you see in the Xcode debug bar. You can also drive it directly for advanced workflows.

  • lldb-dap

    An adapter that exposes LLDB through the Debug Adapter Protocol so editors like VS Code can use it.

  • leaks

    Attaches to a running process and reports memory leaks. The CLI version of the Instruments Leaks tool.

  • heap

    Inspects heap allocations in a running process and groups them by class.

  • vmmap

    Prints a virtual memory map for a process so you can see where every region comes from.

  • malloc_history

    Shows the call stack that allocated a given address. Helpful when chasing down where a leaked object came from.

  • stringdups

    Finds duplicate string literals in a binary that could be deduped to save memory.

  • sample

    Periodically samples a running process to produce a CPU profile without attaching a full instrument.

  • filtercalltree

    Filters and inverts call trees produced by Instruments so you can focus on the slow paths.

  • symbols

    Looks up debug symbols for addresses, useful for symbolicating crash data outside of Xcode.

  • atos

    Translates raw memory addresses into symbol names for a binary plus dSYM.

  • crashlog

    Symbolicates and parses .crash and .ips crash report files.

  • logdump

    Dumps and analyzes archived system log bundles when Console.app is not enough.

  • xcdebug

    An internal helper used by Xcode itself for debugging session setup. Rarely invoked directly outside of Apple internals.

  • xcdiagnose

    Collects diagnostic bundles for Apple Developer Technical Support cases.

  • instrumentbuilder

    Builds custom Instruments packages so you can ship your own profiling tools.

4

Simulators and Devices

  • simctl

    Drives the iOS Simulator from the command line. Boot, install, launch, screenshot, set permissions, push notifications.

  • devicectl

    Manages physical devices over USB or Wi-Fi. Install apps, capture logs, run tests, and inspect device state.

  • xcdevice

    Lists and queries connected devices. Older but still useful for scripting device discovery.

5

Code Signing and Distribution

  • notarytool

    Submits notarization requests to Apple and polls for results. The modern replacement for altool notarization.

  • stapler

    Staples a notarization ticket onto an app or installer so Gatekeeper can verify it offline.

  • altool

    The legacy uploader and validator. Mostly replaced by notarytool and Transporter, but still around.

  • iTMSTransporter

    Uploads builds to App Store Connect. Now mostly a wrapper that defers to the Transporter app.

  • xcsigningtool

    Performs code signing operations as part of the build pipeline.

  • xarsigner

    Signs XAR archives, used for some installer formats.

  • embeddedBinaryValidationUtility

    Validates that embedded binaries inside an app bundle conform to App Store rules.

  • CreateIPA

    Builds an IPA archive suitable for App Store submission.

  • ipatool and ipatool2

    Process and validate IPA files outside of the GUI export flow.

6

Versioning and Project Management

  • agvtool

    Bumps version and build numbers across an Xcode project in one command. Replaces hand-editing the Info.plist before each release.

  • xed

    Opens files or projects in Xcode from the terminal. Useful in shell scripts and Makefiles.

  • opendiff

    Launches FileMerge to diff or merge files visually.

  • xcindex-test

    Tests Xcode indexing behavior, used internally for diagnosing slow autocomplete.

7

Localization

  • genstrings

    Scans source code for NSLocalizedString calls and generates a Localizable.strings file from the keys it finds.

  • extractLocStrings

    Extracts localized strings out of a compiled binary, the reverse of genstrings.

  • xcstringstool

    Manages the newer .xcstrings catalog format from the command line.

  • convertRichTextToAscii

    Strips rich text formatting from a file and writes the plain ASCII equivalent.

8

Asset Processing

  • pngcrush

    Apple's bundled copy of the PNG optimizer. Run during builds to shrink raster assets without quality loss.

  • TextureAtlas

    Creates texture atlases for SpriteKit by packing many small images into one larger texture.

  • TextureConverter

    Converts texture data between formats for use in graphics pipelines.

  • scntool

    Processes SceneKit scene files (.scn) for inclusion in app bundles.

  • realitytool

    Processes RealityKit assets like .usdz and .reality files used in AR experiences.

  • referenceobjectc

    Compiles ARKit reference objects produced by the Reality Composer scanning workflow.

  • placeholderutil

    Generates placeholder app icons for builds where the real icons are not yet ready.

  • ictool

    Processes icon and image assets, primarily for the App Store metadata pipeline.

  • compositeMD5

    Generates MD5 checksums for App Store assets to verify integrity during upload.

9

CloudKit and Services

  • cktool

    Manages CloudKit schemas and records from the command line, including importing and exporting.

  • mcpbridge

    An internal bridge used by Xcode for Model Context Protocol integration so AI tools and assistants can interact with the project.

10

Background Assets

  • ba-package

    Packages Background Assets content into the archive format the runtime downloads.

  • ba-serve

    Serves Background Assets packs over a local network for testing without uploading to a CDN.

  • backgroundassets-debug

    Simulates BackgroundAssets extension events so you can exercise download flows on demand.

11

Safari and Web Extensions

  • safari-web-extension-converter

    Converts Chrome or Firefox extensions into Safari Web Extension projects.

  • safari-web-extension-packager

    Packages a Safari Web Extension into the format the App Store accepts.

12

Resource Forks and Legacy

  • Rez

    Compiles classic Mac resource description files (.r) into resource forks. Almost entirely historical at this point.

  • DeRez

    Decompiles a resource fork back into the .r source representation.

  • ResMerger

    Merges multiple resource fork files into one.

  • SplitForks

    Splits a file into separate resource and data fork files.

  • GetFileInfo

    Reads HFS file attributes like creator code and type.

  • SetFile

    Writes HFS file attributes like creator code and type.

13

Documentation

  • headerdoc2html

    Generates HTML documentation from HeaderDoc comments in headers and source files.

  • gatherheaderdoc

    Combines HeaderDoc output across multiple files into a single table of contents.

  • hdxml2manxml

    Converts HeaderDoc XML output into the XML format used by xml2man.

  • xml2man

    Converts XML descriptions into Unix man pages.

14

Scripting and AppleScript

  • sdef

    Extracts the scripting definition from an app so you can see what AppleScript or JavaScript for Automation can drive.

  • sdp

    Converts scripting definitions between formats, useful when generating headers for Scripting Bridge.

15

Siri and Intelligence

  • ssu-cli

    A development tool for Apple's Siri natural language understanding stack.

  • ssu-cli-app

    Tests how a specific app integrates with the Siri stack.

  • ssu-cli-nlu

    Exercises the natural language understanding component on its own.

16

Gaming

  • gamepolicyctl

    Reads and writes the system game policy enforcement settings used by the Game Mode feature.

17

App Metadata

  • swinfo

    Prints information about the bundled Swift compiler and runtime versions.

  • appleProductTypesTool

    Queries the database of Apple product type identifiers, useful when targeting specific hardware.

  • desdp

    Extracts scripting information out of an app bundle.

  • resolveLinks

    Resolves symbolic links in a path and prints the canonical destination. Generic filesystem helper used during builds.

18

Bundled Git

  • git

    Standard Git, bundled with Xcode so it works out of the box on a fresh Mac.

  • git-receive-pack

    Server side handler for git push operations.

  • git-shell

    A restricted login shell that only permits Git operations, used on Git servers.

  • git-upload-archive

    Server side handler for git archive over SSH.

  • git-upload-pack

    Server side handler for git fetch and clone operations.

  • scalar

    A wrapper around Git designed to scale to very large repositories.

19

Bundled Python

  • python3 and python3.9

    The Python interpreter bundled with Xcode for use by build scripts and tooling.

  • pip3 and pip3.9

    The Python package manager that pairs with the bundled interpreter.

  • pydoc3 and pydoc3.9

    The Python documentation viewer.

  • 2to3 and 2to3-3.9

    A migration tool for converting Python 2 source to Python 3.

20

Build System

  • make and gnumake

    GNU Make, bundled so build scripts that depend on it work without a separate Homebrew install.