idevice
Logs & Capture

Crash Reports

List, pull, remove, and flush crash reports.

CrashReportCopyMobile exposes com.apple.crashreportcopymobile through CrashReportCopyMobileClient. It can also start com.apple.crashreportmover before reading reports.

Use It For

  • List crash report paths.
  • Pull crash reports to the host.
  • Remove reports from the exposed path.
  • Flush reports before copying.

Feature Flag

Cargo.toml
[dependencies]
idevice = { version = "0.1.64", features = ["usbmuxd", "crashreportcopymobile"] }

Service Names

PathValue
Lockdowncom.apple.crashreportcopymobile
Crash movercom.apple.crashreportmover
RSDcom.apple.crashreportcopymobile.shim.remote

Rust Example

src/main.rs
use idevice::{
    IdeviceService,
    crashreportcopymobile::CrashReportCopyMobileClient,
};

let provider = first_provider().await?;
let mut client = CrashReportCopyMobileClient::connect(&provider).await?;
let entries = client.ls("/").await?;
println!("{entries:#?}");

CLI Equivalent

Terminal
idevice-tools crash_logs list /
idevice-tools crash_logs flush
idevice-tools crash_logs pull /path/on/device ./report.ips

Common Errors

ErrorWhat to check
Service not foundThe device/iOS version does not advertise this service on the selected transport.
Connection failedCheck pairing, trust state, and whether the selected provider can reach the device.
Permission errorThe service requires a device state, entitlement, or developer setting that is not active.

Source

On this page