Giter Club home page Giter Club logo

ipatool-py's Introduction

IPATool-py

Python version of IPATool!

Now Supports:

  • Purchasing App via --purchase
  • Downloading Old IPA via iTunes Server

Installation

pip3 install -r requirements.txt

Usage

There're three commands: lookup, historyver, download. Each command's usage can be found by -h option.

You can also chain multiple command, last command's output will be passed to next command (so you don't need to supply some arguments like appVerId)

Download Newest Version

Download an app using bundleID (-o can be omited)

python3 main.py lookup -b com.touchingapp.potatsolite -c JP download -e APPLE_EMAIL -p APPLE_PWD -o DIR

Or appID (XXXXX in the apps.apple.com/app/xxxx/idXXXXXX)

python3 main.py download -i XXXXX

You can also purchase apps when downloading using --purchase:

python3 main.py lookup -b com.touchingapp.potatsolite -c JP download --purchase -e APPLE_EMAIL -p APPLE_PWD -o DIR

Download OLD Version

Old versions must be downloaded together with iTunes Server. You can get iTunes Server in several ways:

After setting up the server, you can run this tool to download a specific version

python3 main.py lookup -b com.touchingapp.potatsolite -c JP download -s http://127.0.0.1:9000 --appVerId 833889087

Get History Ver (usually used together with JSON)

Get all appVerId of app from Apple

python3 main.py lookup -b com.touchingapp.potatsolite -c JP historyver -e APPLE_EMAIL -p APPLE_PWD

Lookup (usually used together with JSON)

Query app basic information:

  • By bundleID: python3 main.py lookup -b com.touchingapp.potatsolite -c JP
  • By appID: python3 main.py lookup -i 1239860606 -c JP

Query appVerId:

python3 main.py lookup -b com.touchingapp.potatsolite -c JP --get-verid

Headless Usage

For each command you can use --json switch to get result of command in JSON

python3 main.py --json lookup -b com.touchingapp.potatsolite -c JP --get-verid
python3 main.py --json lookup -b com.touchingapp.potatsolite -c JP historyver -e APPLE_EMAIL -p APPLE_PWD

Development

  • All requests' reqBody and respBody are modeled using modified JSONSchema2PoPo2 (see my NyaMisty/JSONSchema2PoPo2), you can regenerate the binding by cd into reqs/schemas and execute python3 -m schema_defs
  • See more information on how to generate schema in reqs/schemas directory

Credit

  • Thanks @majd's ipatool, which is written in swift

ipatool-py's People

Contributors

nyamisty avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.