idevice
CoreDevice

App Service

List, launch, uninstall, signal, and inspect apps through CoreDevice.

App Service is a CoreDevice service reached through RSD and RemoteXPC. The client connects to com.apple.coredevice.appservice.

Use It For

  • Connect through the iOS 17+ CoreDevice tunnel.
  • Call the typed CoreDevice client methods.
  • Use the matching tool command when one is registered.

Feature Flag

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

Service Names

PathValue
RSDcom.apple.coredevice.appservice

Rust Example

src/main.rs
use idevice::{RsdService, core_device::AppServiceClient};

let mut client: AppServiceClient<_> = rsd_handshake
    .connect(&mut rsd_provider)
    .await?;
let apps = client.list_apps(false, true, false, false, true).await?;
println!("{apps:#?}");

CLI Equivalent

Terminal
idevice-tools app_service list
idevice-tools app_service launch <bundle-id>

Common Errors

ErrorWhat to check
RSD service not foundThe connected device did not advertise the CoreDevice service name.
RemoteXPC errorCheck the CoreDevice action and payload shape used by the client.
Tunnel unavailableCreate the iOS 17+ tunnel before connecting to CoreDevice services over USB.

Source

On this page