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
[dependencies]
idevice = { version = "0.1.64", features = ["usbmuxd", "crashreportcopymobile"] }Service Names
| Path | Value |
|---|---|
| Lockdown | com.apple.crashreportcopymobile |
| Crash mover | com.apple.crashreportmover |
| RSD | com.apple.crashreportcopymobile.shim.remote |
Rust Example
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
idevice-tools crash_logs list /
idevice-tools crash_logs flush
idevice-tools crash_logs pull /path/on/device ./report.ipsCommon Errors
| Error | What to check |
|---|---|
| Service not found | The device/iOS version does not advertise this service on the selected transport. |
| Connection failed | Check pairing, trust state, and whether the selected provider can reach the device. |
| Permission error | The service requires a device state, entitlement, or developer setting that is not active. |