Объяснение5 мин ·

Как устроен «Возврат»: ipatool, pymobiledevice3 и локальный сервер

Что происходит между нажатием «Установить» и иконкой на экране iPhone.

«Возврат» состоит из локального сервера на вашем компьютере и двух готовых инструментов с открытым кодом.

Интерфейс программы: три шага — Apple ID, iPhone и приложение
Интерфейс программы: три шага — Apple ID, iPhone и приложение

Схема

Интерфейс (окно / браузер) ─► локальный сервер 127.0.0.1 ─┬─► ipatool ─────────► App Store (вход, IPA) └─► pymobiledevice3 ─► iPhone по USB

Зачем нужен ipatool

Чтобы войти в App Store, Apple требует подпись SAP (FairPlay). Её умеет вычислять ipatool (лицензия MIT): он эмулирует код Apple. Своя реализация протокола без него получает от Apple пустой ответ. Через ipatool программа входит в аккаунт и скачивает IPA вместе с sinf и iTunesMetadata.

Зачем нужен pymobiledevice3

pymobiledevice3 (GPL-3.0) находит iPhone на USB и устанавливает на него скачанный пакет. На Windows для этого нужен драйвер Apple, на Linux — служба usbmuxd, на macOS всё встроено.

Где хранятся данные

В папке программы: %APPDATA%\vozvrat на Windows, ~/Library/Application Support/Vozvrat на macOS, ~/.local/share/vozvrat на Linux. Там лежат ключ от хранилища ipatool и временные IPA. Общий ~/.ipatool на Windows и Linux не используется, чтобы не мешать другим программам на ipatool.

Открытый код

Весь код доступен на GitHub: можно проверить, что именно делает программа, или собрать её самостоятельно.

Вернуть приложение на iPhone

Бесплатно, с открытым исходным кодом, для Windows, macOS и Linux.

Скачать «Возврат»