
Herramienta de línea de comandos que permite buscar y descargar paquetes de aplicaciones (conocidos como archivos ipa) para iOS, iPadOS, tvOS y visionOS desde la App Store.
ipatool es una herramienta de línea de comandos que te permite buscar aplicaciones de iOS, iPadOS, tvOS y visionOS en la App Store y descargar una copia del paquete de la aplicación, conocido como archivo ipa.

Puedes obtener la última versión de ipatool desde las versiones de GitHub.
Puedes instalar ipatool usando Homebrew.
$ brew install ipatool
Para autenticarte con la App Store, usa el comando auth.
Authenticate with the App Store
Usage:
ipatool auth [command]
Available Commands:
info Show current account info
login Login to the App Store
revoke Revoke your App Store credentials
Flags:
-h, --help help for auth
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--non-interactive run in non-interactive session
--verbose enables verbose logs
Use "ipatool auth [command] --help" for more information about a command.
Para buscar aplicaciones en la App Store, usa el comando search.
Search for iOS, iPadOS, tvOS, and visionOS apps available on the App Store
Usage:
ipatool search <term> [flags]
Flags:
-h, --help help for search
-l, --limit int maximum amount of search results to retrieve; visionOS supports up to 12 (default 5)
--platform string Platform to search: iphone (iOS), ipad (iPadOS), appletv (tvOS), or visionos
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--non-interactive run in non-interactive session
--verbose enables verbose logs
Para obtener una licencia de una aplicación, usa el comando purchase.
Obtain a license for the app from the App Store
Usage:
ipatool purchase [flags]
Flags:
-b, --bundle-identifier string Bundle identifier of the target iOS app (required)
-h, --help help for purchase
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--non-interactive run in non-interactive session
--verbose enables verbose logs
Para listar las aplicaciones que posee la cuenta autenticada, usa el comando list-purchases. Los resultados se ordenan por fecha de compra, los más recientes primero.
List apps owned by the authenticated App Store account
Usage:
ipatool list-purchases [flags]
Flags:
-h, --help help for list-purchases
-l, --max-results int maximum number of apps to return per page (default 10)
-p, --page int page of owned apps to return (default 1)
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--keychain-passphrase string passphrase for unlocking keychain
--non-interactive run in non-interactive session
--verbose enables verbose logs
Para obtener una lista de las versiones disponibles de la aplicación para descargar, usa el comando list-versions.
List the available versions of an iOS app
Usage:
ipatool list-versions [flags]
Flags:
-i, --app-id int ID of the target iOS app (required)
-b, --bundle-identifier string The bundle identifier of the target iOS app (overrides the app ID)
-h, --help help for list-versions
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--keychain-passphrase string passphrase for unlocking keychain
--non-interactive run in non-interactive session
--verbose enables verbose logs
Para descargar una copia del archivo ipa, usa el comando download.
Download (encrypted) iOS, iPadOS, tvOS, and visionOS app packages from the App Store
Usage:
ipatool download [flags]
Flags:
-i, --app-id int ID of the target app (required)
-b, --bundle-identifier string The bundle identifier of the target app (overrides the app ID)
--external-version-id string External version identifier of the target app (defaults to latest version when not specified)
-h, --help help for download
-o, --output string The destination path of the downloaded app package
--platform string Platform to download for: iphone (iOS), ipad (iPadOS), appletv (tvOS), or visionos
--purchase Obtain a license for the app if needed
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--keychain-passphrase string passphrase for unlocking keychain
--non-interactive run in non-interactive session
--verbose enables verbose logs
Para resolver un identificador de versión externo, devuelto por el comando list-versions, usa el comando get-version-metadata.
Retrieves the metadata for a specific version of an app
Usage:
ipatool get-version-metadata [flags]
Flags:
-i, --app-id int ID of the target iOS app (required)
-b, --bundle-identifier string The bundle identifier of the target iOS app (overrides the app ID)
--external-version-id string External version identifier of the target iOS app (required)
-h, --help help for get-version-metadata
Global Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--keychain-passphrase string passphrase for unlocking keychain
--non-interactive run in non-interactive session
--verbose enables verbose logs
Nota: la herramienta se ejecuta en modo interactivo por defecto. Usa la opción --non-interactive si se ejecuta en un entorno automatizado.
La herramienta se puede compilar usando la cadena de herramientas de Go.
$ go build -o ipatool
Las pruebas unitarias se pueden ejecutar con los siguientes comandos.
$ go generate ./...
$ go test -v ./...
IPATool se distribuye bajo la licencia MIT.