LinuxCommandLibrary

ideviceprovision

Provision iOS device for development/testing

SYNOPSIS

ideviceprovision [-d|--debug] [-u UDID|--udid UDID] [-h|--help] [-V|--version] list | install PROV | remove UUID | remove-all

PARAMETERS

-d, --debug
    Enable debug output for communication

-u UDID, --udid UDID
    Target specific device by its UDID

-h, --help
    Display usage help

-V, --version
    Print version information

DESCRIPTION

ideviceprovision is a command-line tool from the libimobiledevice suite, designed for interacting with Apple iOS devices on Linux and other non-macOS systems. Provisioning profiles are essential for iOS app development and distribution, containing certificates, entitlements, and device IDs that allow sideloading unsigned apps, beta testing, or enterprise deployments.

This tool enables developers to list, install, remove, or remove all provisioning profiles directly on connected iOS devices via USB, without needing Xcode or iTunes. It's invaluable for cross-platform workflows, CI/CD pipelines, and open-source iOS hacking communities.

Usage requires a trusted USB connection (device must unlock and trust the host), with usbmuxd daemon running for communication. Profiles are typically .mobileprovision files exported from Apple Developer portal. The tool parses profiles using libplist, installs them to the device's configuration domain, and verifies via lockdown service.

Common scenarios include preparing devices for ideviceinstaller app deployment or cleaning expired profiles. Debug mode aids troubleshooting AFC2/plist exchanges. Limitations include no wireless support and iOS version dependencies (e.g., newer profiles may need updated libimobiledevice).

CAVEATS

Requires libimobiledevice >= 1.3.0, USB connection with trust, usbmuxd running. No over-the-air support. Fails on locked/unpaired devices. iOS 17+ may have stricter lockdown checks.

ACTIONS

list: Print all installed profiles with UUIDs.
install PROV: Install .mobileprovision file.
remove UUID: Delete specific profile.
remove-all: Clear all profiles.

EXAMPLES

ideviceprovision list
ideviceprovision -u <UDID> install MyApp.mobileprovision
ideviceprovision remove 12345678-ABCD-...

HISTORY

Developed as part of libimobiledevice project (started 2007 by Nikias Bassen). ideviceprovision added ~2011 for iOS 5 provisioning support, evolving with iOS features like multiple profiles and entitlements.

SEE ALSO

ideviceinstaller(1), idevicediagnostics(1), usbmuxd(1), libimobiledevice(1)

Copied to clipboard