ipatool: cross-platform support

Today, I am happy to share with you that ipatool has been rebuilt using Go, which allowed me to fulfil a popular feature request: Linux support.
Using Go cross-platform compilation support, the tool can now run on macOS, Windows and Linux.

If you are not yet familiar with ipatool, it is a command-line tool which lets you
search for apps on the iOS App Store, obtain a license for an app and download a copy of the app package (known as ipa file) using your Apple ID.

In addition to cross-platform support, this release brings many enhancements to the CLI, such as structured logging/formatting and automatic country detection.

See below for the full changes list.

What's Changed

  • Added support for Windows.
  • Added support for Linux.
  • Added support for generating autocompletion script using the `completion` command.
  • Implemented new auth info command.
  • Implemented --verbose flag that replaces the --debug-level flag to enable verbose logging.
  • Implemented --format which allows specifying logs output format to either text or json (default: text).
  • Implemented --non-interactive flag to disable running the tool in an interactive session.
  • The relevant command (i.e. purchase) will now automatically determine the country and the device family from the
    authenticated account. The following flags have been deprecated.
    • --country
    • --device-family
  • Improved structured logging.
  • Improved error handling.
  • Improved support for automated systems.
  • Added unit tests to cover the majority of the private App Store API logic.

As a reminder, the tool is fully open-source and is available on GitHub and is licensed under the MIT license. Happy reverse engineering!

Majd

Majd

I am a software engineer, a cloud compute enthusiast and an open-source maintainer. I am very interested in reverse engineering, tinkering with things and taking them apart.