ipatool is a command line tool that allows you to search for iOS apps on the App Store and download a copy of the app package, known as an ipa file.
- Supported operating system (Windows, Linux or macOS).
- Apple ID set up to use the App Store.
You can grab the latest version of ipatool from GitHub releases.
You can install ipatool using Homebrew.
$ brew install ipatoolTo authenticate with the App Store, use the auth command.
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.
To search for apps on the App Store, use the search command.
Search for iOS 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 (default 5)
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
To obtain a license for an app, use the purchase command.
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
To obtain a list of availble app versions to download, use the list-versions command.
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
To download a copy of the ipa file, use the download command.
Download (encrypted) iOS app packages from the App Store
Usage:
  ipatool download [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 (defaults to latest version when not specified)
  -h, --help                         help for download
  -o, --output string                The destination path of the downloaded app package
      --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
To resolve an external version identifier, returned by the list-versions command, use the get-version-metadata command.
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
Note: the tool runs in interactive mode by default. Use the --non-interactive flag
if running in an automated environment.
The tool can be compiled using the Go toolchain.
$ go build -o ipatoolUnit tests can be executed with the following commands.
$ go generate github.com/majd/ipatool/...
$ go test -v github.com/majd/ipatool/...IPATool is released under the MIT license.
