idevicecrashreport
Extract crash reports from connected iOS devices
TLDR
Retrieve crash reports and move them to a specified directory
Retrieve crash reports without removing them from the device
Extract crash reports into separate .crash files
SYNOPSIS
idevicecrashreport [OPTIONS]
PARAMETERS
-h, --help
Displays a brief help message and exits.
-v, --version
Shows the command's version information and exits.
-u UDID, --udid UDID
Specifies the unique device identifier (UDID) of the iOS device to connect to. If omitted, the command will attempt to connect to the first available device.
-d, --debug
Enables verbose debug output, useful for troubleshooting connection or processing issues.
-e PATH, --extract PATH
Extracts crash reports from the device and saves them to the specified PATH directory.
-c, --copy
Copies crash reports to the current working directory. This option is largely superseded by --extract and may be deprecated.
-s, --symbolicate
Attempts to symbolicate the downloaded crash reports. Requires Xcode command-line tools or `atos` utility to be installed and accessible for proper functionality.
-k, --keep
Keeps crash reports on the device after they have been processed or copied. By default, reports are removed from the device.
-m, --manifest
Creates a manifest file (.manifest
) containing metadata about the downloaded crash reports alongside the extracted files.
-p, --process
Processes crash reports. This option often works in conjunction with --symbolicate to prepare reports for analysis.
-r, --remove
Removes crash reports from the device after they have been processed or copied. This is the default behavior unless --keep is specified.
-o DIR, --output-dir DIR
Specifies the output directory where processed files (e.g., symbolicated reports) should be saved. Typically used with --extract and --process.
-a, --all-reports
Downloads all available crash reports from the device, not just the latest ones. Useful for comprehensive historical analysis.
DESCRIPTION
idevicecrashreport is a command-line utility from the libimobiledevice project. It provides functionality to interact with crash reports stored on iOS devices. Users can utilize this command to download, process (e.g., symbolicate for debugging), and optionally delete crash logs directly from an iPhone, iPad, or iPod Touch. It's an essential tool for developers and system administrators needing to analyze device stability and identify issues without relying solely on Xcode or iTunes.
CAVEATS
Symbolication relies on the presence of appropriate debug symbols (dSYMs) and the `atos` utility, typically found within Xcode command-line tools. Full symbolication on non-macOS systems can be challenging. Ensure your iOS device is unlocked and 'trusted' with the host computer for the command to function correctly.
TRUST RELATIONSHIP
For idevicecrashreport to function, the iOS device must establish a trust relationship with the host computer. This is typically initiated by unlocking the device and approving the 'Trust This Computer?' prompt.
DEPENDENCIES
The command requires the `usbmuxd` daemon to be running and the `libimobiledevice` libraries to be correctly installed on the system. These provide the underlying communication framework for interacting with iOS devices.
HISTORY
idevicecrashreport is part of the libimobiledevice project, an open-source initiative that began around 2007. The project aims to provide a cross-platform protocol library to communicate with Apple's iOS devices using native protocols, independent of official Apple software. idevicecrashreport was developed as one of the many utilities within this suite to specifically address the need for managing device crash logs, reflecting the community's effort to provide alternatives to proprietary tools for iOS development and debugging on Linux and other non-macOS platforms.
SEE ALSO
ideviceinfo(1), idevicesyslog(1), idevicediagnostics(1), ifuse(1), usbmuxd(8)