About libimobiledevice/ideviceinstaller
ideviceinstaller is a cross-platform command-line utility for managing apps and app archives on iOS devices. Built on the libimobiledevice library, it allows users to install, upgrade, uninstall, and enumerate apps, retrieve lists of installed apps with filtering, and output results in plist, XML, or JSON formats. It supports app packages, carrier bundles, and developer .app directories, and is tested on Linux, macOS, Windows, and Android platforms.
Key Features
Install, upgrade, uninstall, and enumerate apps on iOS devices
Browse installed apps with filter options
Supports app package, carrier bundle, and developer .app directory installation
Command output in plist, XML, or JSON format
Compatible with latest iOS firmware releases
Cross-platform: Linux, macOS, Windows, and Android
Pros & Cons
Pros
- Open source and free to use
- Works across multiple operating systems including Android
- Supports modern iOS versions and output in structured formats
- Integrates well with scripting and automation
Cons
- Requires manual installation of dependencies (e.g., libimobiledevice, libplist)
- Command-line only; no graphical user interface
- Setup on Windows and Android may involve extra steps
Best For
Automating app installation and removal on iOS devices in CI/CD pipelinesManaging apps on multiple iOS devices from a single terminalExtracting app lists for inventory or reporting purposes
FAQ
How do I install ideviceinstaller on Debian/Ubuntu?
First install build dependencies (build-essential, git, autoconf, libtool, libplist-dev, libimobiledevice-dev, libzip-dev, usbmuxd), then clone the repo and run ./autogen.sh, make, and sudo make install.
How do I list installed apps on a connected iOS device?
Run 'ideviceinstaller list' to display a list of bundle identifiers for installed apps.
How do I install an app from a .ipa or .app file?
Use 'ideviceinstaller install <path_to_file>' to install the app package or developer .app directory.
How do I uninstall an app?
Use 'ideviceinstaller uninstall <appid>' where appid is the bundle identifier of the app.