Личный архив IPA под Windows: скачать свои покупки из App Store (в том числе удалённые из магазина и старые версии), хранить локально и ставить на свой iPhone по кабелю — замена функции «Приложения» в iMazing.
App Store ──ipatool──► downloads/ ──► library/<bundle>/<версия>_<extVer>.ipa + index.json
│
проверка совместимости ◄──┤ (iOS, 32/64 бит, iPhone/iPad, место, sinf)
▼
iPhone ◄── installation_proxy ◄── AFC /PublicStaging ◄── pymobiledevice3 ◄── Apple Mobile Device Service
| Модуль | Что делает |
|---|---|
store.py |
обёртка над ipatool: вход/2FA, покупки, версии, скачивание; ошибки → понятный текст |
catalog.py |
публичный iTunes Search/Lookup API; «нет в lookup» = удалено из магазина |
ipa.py |
разбор IPA без распаковки: Info.plist, Mach-O архитектуры, sinf, iTunesMetadata (Apple ID) |
compat.py |
проверки до установки — ошибки/предупреждения с причиной текстом |
library.py |
архив: дедуп по sha256, атомарная запись индекса |
device.py |
устройства, установленные приложения, загрузка с прогрессом и установка |
service.py |
сценарии (покупки + сверка, скачивание в архив, план установки) — общие для CLI и окна |
jobs.py |
очередь долгих задач: строго по одной, прогресс, отмена ожидающих |
gui/ |
окно: pywebview (WebView2) + HTML; api.py — мост к Python с проверкой входных данных |
cli.py |
команды |
Почему App Store-IPA вообще запускается на телефоне: файл зашифрован FairPlay и несёт лицензию
(SC_Info/*.sinf) на конкретный Apple ID. Приложение откроется, только если на iPhone выполнен
вход в App Store под этим же Apple ID. Раздавать такие IPA другим бессмысленно — у них не запустится.
Нужно: Windows 10/11, «Устройства Apple» (Apple Devices) или iTunes из Microsoft Store —
ради службы Apple Mobile Device Service. Python 3.12 (3.13 не подходит: зависимость lzfse
pymobiledevice3 не собирается без MSVC).
uv venv --python 3.12 .venv
uv pip install --python .venv\Scripts\python.exe -e ".[dev]"Вход в Apple ID и скачивание делает внешний «движок». Поддерживаются два — положите один или оба
в tools\ (в репозиторий не входят):
| Движок | Файл | История покупок | Состояние на 04.10.2026 |
|---|---|---|---|
| ipatool (Go) | tools\ipatool.exe |
есть — видно удалённое из App Store | у многих не проходит вход (#598, #607) |
| ipatool-cpp (C++) | tools\ipatool-cpp.exe |
нет — удалённое скачивается по ссылке App Store или ID | вход работает |
По умолчанию — ipatool-cpp; сменить: в окне («Движок · сменить») или ipakeep engine ipatool.
У каждого движка своя сессия в %LOCALAPPDATA%\ipakeep\<движок> — отдельно друг от друга и от
других инструментов на ipatool (их ~\.ipatool ipakeep не читает и не трогает). После смены движка
нужно войти заново.
Оригинальный ipatool лучше собрать из main (там свежие исправления входа):
git clone https://github.com/majd/ipatool && cd ipatool
CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o ipatool.exe .ipatool-cpp — готовый windows_amd64_ipatool-cpp.zip из релизов,
файл переименовать в ipatool-cpp.exe.
Не повторяйте неудачный вход много раз подряд — есть сообщения, что Apple после этого временно блокирует Apple ID.
dist\ipakeep.exe — один файл (~105 МБ): окно + оба движка внутри, Python не нужен. На компьютере
должны быть «Устройства Apple» или iTunes (служба Apple Mobile Device) и WebView2 (в Windows 10/11 есть).
Данные и журнал — в %LOCALAPPDATA%\ipakeep, как и у версии из исходников.
Сборка и автопроверка (ipatool внутри отвечает, хранилище ключей Windows, служба Apple, WebView2):
uv pip install --python .venv\Scripts\python.exe pyinstaller pillow
.venv\Scripts\python dev�uild_exe.pyДиагностика готового exe без окна: ipakeep.exe --self-check report.json.
.venv\Scripts\ipakeep-guiВкладки: Покупки (что удалено из App Store + «Скачать все»; старые версии), Архив
(проверка перед установкой и «Поставить»), Магазин (поиск), iPhone (устройство и
установленные приложения). Скачивания и установки идут по одной в панели задач.
Журнал: %LOCALAPPDATA%\ipakeep\logs\ipakeep.log.
Посмотреть интерфейс без iPhone и Apple ID (поддельные данные):
python dev\preview.py → http://127.0.0.1:8765/ (?scenario=fresh — не вошли, iPhone нет).
.venv\Scripts\ipakeep doctor # окружение: ipatool, служба Apple, вход, устройства
.venv\Scripts\ipakeep login -e me@icloud.com # пароль и код 2FA спросит сам
.venv\Scripts\ipakeep purchases --removed # покупки, которых уже нет в App Store
.venv\Scripts\ipakeep rescue # скачать в архив все удалённые покупки разом
.venv\Scripts\ipakeep download com.some.app --app-id 123456789 # удалённое — по trackId
.venv\Scripts\ipakeep versions com.some.app # старые версии
.venv\Scripts\ipakeep download com.some.app --version 812345678
.venv\Scripts\ipakeep lib # архив
.venv\Scripts\ipakeep devices
.venv\Scripts\ipakeep check com.some.app # встанет ли — без установки
.venv\Scripts\ipakeep install com.some.app # или по id из `lib`Переменные окружения: IPAKEEP_HOME (архив, по умолчанию %LOCALAPPDATA%\ipakeep),
IPAKEEP_COUNTRY (страна магазина = страна Apple ID, по умолчанию ru), IPAKEEP_IPATOOL.
- Токен Apple ID хранит ipatool в зашифрованном файле (
%LOCALAPPDATA%\ipakeep\ipatool). Ключ к нему ipakeep генерирует сам и кладёт в Диспетчер учётных данных Windows. - Пароль Apple ID передаётся ipatool аргументом при входе — на долю секунды виден в списке процессов этого компьютера. Для личной машины приемлемо; на общей — не входить.
- Частые входы из нестандартного клиента Apple может счесть подозрительными (блок/сброс пароля). Входить один раз, дальше работает сохранённая сессия.
- Скачивать можно только то, что есть в истории покупок аккаунта (бесплатные тоже «покупка»).
.venv\Scripts\python -m pytest -q --cov=ipakeep- Живая проверка входа, скачивания и установки на реальном Apple ID и iPhone.
- Подпись exe (без неё SmartScreen предупреждает при первом запуске).
- Очередь установки на несколько устройств.
- Резерв на случай, если ipatool отстанет от Apple: Rust-ядро seifreed/ipakeep или libipatool-go.
ipakeep — для своих покупок: скачивает только то, что есть в истории покупок вашего Apple ID, и ставит на ваши устройства. Защиту FairPlay не снимает и не обходит — приложение запускается только под тем же Apple ID. Проект не связан с Apple; App Store, iPhone и iOS — товарные знаки Apple Inc.
Код — GPL-3.0 (готовый exe включает pymobiledevice3 под GPL-3.0).
- ipatool — MIT, вход в App Store и скачивание (вкладывается в exe)
- ipatool-cpp — MIT, второй движок (вкладывается в exe)
- pymobiledevice3 — GPL-3.0, связь с iPhone
- pywebview — BSD-3-Clause, окно