ideviceprovision
Provision iOS device for development/testing
SYNOPSIS
ideviceprovision [OPTIONS]
PARAMETERS
-h, --help
Show usage information and exit.
-u, --udid <udid>
Target a specific device by its 40-digit device UDID. If omitted, the first connected device is used.
-l, --list
List all installed provisioning profiles on the device, showing their UUIDs, names, and expiration dates.
-i, --install <PROFILE>
Install a provisioning profile on the device. <PROFILE> must be the path to a .mobileprovision file.
-r, --remove <UUID>
Remove a provisioning profile by its unique UUID. The UUID can be identified using the --list option.
-x, --xml
Output data in XML format. This option is particularly useful when combined with --list for programmatic parsing.
-d, --debug
Enable debug output for troubleshooting verbose information.
-v, --version
Show version information and exit.
DESCRIPTION
ideviceprovision is a powerful command-line utility belonging to the libimobiledevice project, an open-source suite of tools designed to interact with Apple iOS devices natively on Linux, macOS, and Windows. This specific command empowers users to manage provisioning profiles and signing identities directly on a physically connected iPhone, iPad, or iPod touch.
It serves as an essential tool for iOS developers and testers who need to control the lifecycle of .mobileprovision files on their test devices. Users can leverage ideviceprovision to seamlessly install new profiles, list all currently installed profiles to inspect their details (like UUIDs, expiration dates, and associated device UDIDs), or efficiently remove outdated or unnecessary profiles, all without the need for Apple's proprietary Xcode environment. This functionality is particularly valuable for automating device setup in continuous integration/delivery pipelines or for managing devices in non-macOS development environments.
CAVEATS
Requires a physical iOS device (iPhone, iPad, iPod touch) connected via USB to the host computer.
The iOS device must be unlocked and have 'trusted' the host computer (by responding to the 'Trust This Computer' prompt).
Primarily intended for developers and testers managing application development assets; not a typical end-user tool.
Provisioning profiles are device-specific and often time-limited; ensure the profile matches the device UDID and is not expired.
Potential need for appropriate USB device permissions on some Linux distributions for proper access.
HISTORY
ideviceprovision is an integral part of the libimobiledevice project, an open-source initiative that began around 2007. This project aims to provide a robust, cross-platform communication stack for Apple iOS devices on non-Apple operating systems (Linux, Windows, etc.) without relying on proprietary tools like iTunes or Xcode. The utility was developed to specifically address the need for command-line management of iOS developer assets, such as provisioning profiles, enabling automation and facilitating iOS development workflows outside of the macOS ecosystem.
SEE ALSO
ideviceinstaller(1), ideviceinfo(1), idevicesyslog(1), usbmuxd(8), iproxy(1)