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)


