Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/majd/ipatool
Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store
https://github.com/majd/ipatool
apple appstore cli command-line command-line-tool go golang golang-library ios ipa itunes macos research reverse-engineering security swift tool
Last synced: 5 days ago
JSON representation
Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store
- Host: GitHub
- URL: https://github.com/majd/ipatool
- Owner: majd
- License: mit
- Created: 2021-05-22T08:27:21.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-07T22:56:04.000Z (about 1 month ago)
- Last Synced: 2024-12-31T08:01:54.695Z (12 days ago)
- Topics: apple, appstore, cli, command-line, command-line-tool, go, golang, golang-library, ios, ipa, itunes, macos, research, reverse-engineering, security, swift, tool
- Language: Go
- Homepage:
- Size: 672 KB
- Stars: 6,054
- Watchers: 60
- Forks: 518
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rainmana - majd/ipatool - Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store (Go)
- awesome-golang-repositories - ipatool - line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store (Repositories)
README
# IPATool
[![Release](https://img.shields.io/github/release/majd/ipatool.svg?label=Release)](https://GitHub.com/majd/ipatool/releases/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/majd/ipatool/blob/main/LICENSE)`ipatool` is a command line tool that allows you to search for iOS apps on the [App Store](https://apps.apple.com) and download a copy of the app package, known as an _ipa_ file.
![Demo](./demo.gif)
- [Requirements](#requirements)
- [Installation](#installation)
- [Manual](#manual)
- [Package Manager (macOS)](#package-manager-macos)
- [Usage](#usage)
- [Compiling](#compiling)
- [License](#license)
- [Changelog](https://github.com/majd/ipatool/blob/main/CHANGELOG.md)
- [FAQ](https://github.com/majd/ipatool/wiki/FAQ)## Requirements
- Supported operating system (Windows, Linux or macOS).
- Apple ID set up to use the App Store.## Installation
### Manual
You can grab the latest version of `ipatool` from [GitHub releases](https://github.com/majd/ipatool/releases).
### Package Manager (macOS)
You can install `ipatool` using [Homebrew](https://brew.sh).
```shell
$ brew tap majd/repo
$ brew install ipatool
```## Usage
To authenticate with the App Store, use the `auth` command.
```
Authenticate with the App StoreUsage:
ipatool auth [command]Available Commands:
info Show current account info
login Login to the App Store
revoke Revoke your App Store credentialsFlags:
-h, --help help for authGlobal Flags:
--format format sets output format for command; can be 'text', 'json' (default text)
--non-interactive run in non-interactive session
--verbose enables verbose logsUse "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 StoreUsage:
ipatool search [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 StoreUsage:
ipatool purchase [flags]Flags:
-b, --bundle-identifier string Bundle identifier of the target iOS app (required)
-h, --help help for purchaseGlobal 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 download a copy of the ipa file, use the `download` command.
```
Download (encrypted) iOS app packages from the App StoreUsage:
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)
-h, --help help for download
-o, --output string The destination path of the downloaded app package
--purchase Obtain a license for the app if neededGlobal 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.## Compiling
The tool can be compiled using the Go toolchain.
```shell
$ go build -o ipatool
```Unit tests can be executed with the following commands.
```shell
$ go generate github.com/majd/ipatool/...
$ go test -v github.com/majd/ipatool/...
```## License
IPATool is released under the [MIT license](https://github.com/majd/ipatool/blob/main/LICENSE).