iPhone Установщик 0.7.6

ОПЛАТА ПО QR СБП

При оплате через Т-Банк QR-код, сумма, статус и ссылка появляются прямо
в основном окне. После подтверждения банка установка продолжается сама.
Ссылка открывается по явному нажатию. Данные карты программа не запрашивает.
Тестовый терминал отмечается отдельно: его платежи не пополняют настоящий
баланс и не разрешают установку. Боевой приём зависит от активации терминала.
Старые счета ЮMoney сохраняют прежнюю проверку и оплату.

При доступном обновлении рядом с надписью «Обновить» вращаются две стрелки.

ЗАПУСК ПРОГРАММЫ 0.7.4

Компактное окно подготовки показывает понятные этапы, ход работы и отмену.
На Windows рабочее окно и ярлыки используют единый значок программы.

ОБНОВЛЕНИЕ ПРОГРАММЫ 0.7.4

На Windows загрузка показывает процент и объём файла. После проверки
программа ожидает готовности отдельного установщика, завершает Apple-сеанс
и закрывается. Установка проходит без повторного мастера, с индикатором
хода, затем новая версия открывается автоматически. Профиль сохраняется.
При отмене загрузки или подготовки текущая версия продолжает работать.
Занятые файлы не заменяются; принудительное завершение процессов не применяется.
На Mac после загрузки открывается проверенный DMG для обычной установки.

ОПЛАТА ОЧЕРЕДИ 0.7.1

Перед установкой программа показывает общую цену выбранных приложений.
Одна оплата подтверждает всю выбранную очередь; при обычной цене 50 ₽
пять приложений стоят 250 ₽. Учитываются баланс, подписка и исключения.
Загрузка, проверка совместимости и установка начинаются после подтверждения
оплаты. Если приложение установить не удалось и сбой подтверждён, его
стоимость возвращается на баланс. Неизвестный результат требует сверки.

В «Баланс и платежи» можно запросить возврат доступного остатка на карту.
Это заявка на ручную обработку по исходному платежу; запрошенная сумма
резервируется и больше не расходуется на установки. Подача заявки сама
по себе не означает, что деньги уже поступили на карту.

Опция «Запоминать вход в ЮMoney на этом компьютере» сохраняет только
локальную web-сессию оплаты. Карту сохраняет сам ЮMoney, если предлагает
эту возможность; банк может повторно запросить CVC или подтверждение.
Номера карт и CVC программа не собирает. Без опции используется отдельная
временная сессия. «Забыть вход в ЮMoney» очищает локальную платёжную сессию,
сохраняя баланс и подписку; сначала закройте открытые окна оплаты.

ИСТОРИЯ ПРИЛОЖЕНИЙ 0.7.1

Исправлена ошибочная диагностика repeated_page. В живом отчёте 0.6.17 за
2024 год Apple вернула 5 записей, затем 2, затем пустой массив purchases[];
курсор pagination-token был пустым, is-complete оставался false. Пустая
страница ошибочно принималась за повторённую непустую страницу.

Чтение теперь различает явное завершение Apple и проверенный пустой конец.
Для второго варианта требуется хотя бы одна непустая страница этого года,
обычная нумерация без использованного курсора, два последовательных корректных
пустых ответа с явно пустым курсором. После первого пустого ответа программа
запрашивает следующий номер: найденные там записи добавляются, чтение продолжается.
Подмена диапазона/страницы при редиректе, ошибка, повтор непустых данных,
неизвестный тип записи, первая пустая страница без подтверждения или лимит
не считаются завершением. Курсорная пагинация остаётся отдельной веткой.

В отчёте каждый год содержит причину завершения и номер последней страницы.
Интерфейс отличает явный признак Apple от конца по двум пустым страницам.
Это проверка окончания выдачи данного сервиса, а не абсолютная гарантия,
что Apple показывает все когда-либо существовавшие лицензии аккаунта.

Список объединяет библиотеку Configurator и историю за каждый год с 2008
до зафиксированного текущего года. История не требует наличия публичной
карточки приложения в App Store. Поиск поддерживает название, Bundle ID и ID.
Все полученные имена одного ID и известные варианты поиска показаны отдельными
строками; имена для поиска отмечены как такие. Количество имён и приложений
различается. Выбор, очередь и оплата объединены по исходному ID: связанные
строки не создают повторных установок. Старое имя не означает старую версию IPA.
Разные ID с одинаковым именем остаются разными приложениями.

При неполном обновлении ранее полученные записи сохраняются в памяти текущего
сеанса. Выход или смена Apple Account очищает память. Доступность загрузки
и установки проверяется отдельно. «Проверить в Apple» по известному ID проверяет
метаданные без получения новой лицензии, загрузки IPA, установки или оплаты.
Сведения чтения содержат только ограниченные управляющие поля и счётчики.
Токены, cookies, GUID, аккаунт и финансовые записи не экспортируются, на сервер
оплаты не отправляются. Сам Apple-сеанс остаётся в памяти локальной программы.

ОПЛАТА В ПРОГРАММЕ — ПИЛОТ 0.7.1

Скачайте установщик с https://vedeneev-it.ru/iphone/ и продолжайте в программе.
Логин, пароль и регистрация в нашем сервисе не нужны. Доступ к балансу хранится
в защищённом профиле Windows (DPAPI) или в Связке ключей macOS. Переустановка
самой программы не удаляет этот профиль. Для переноса на другой компьютер
или после переустановки ОС пока понадобится восстановление с помощью владельца.
Apple Account для получения собственных приложений Apple остаётся локальным входом
в самой программе; на наш сервер он не передаётся.

После общей оплаты программа читает IPA, проверяет SHA-256, выбранный iPhone,
совместимость и установленную версию перед передачей каждого файла.
Окончательное решение о подписи принимает iOS; проверка не гарантирует её принятие.
Стоимость обычно 50 ₽ за приложение; владелец может задавать исключения.
В «Баланс и платежи» можно оформить безлимит за 2000 ₽ на один календарный
месяц для текущего профиля программы. Продление только вручную. Раннее
продление добавляет месяц к текущему сроку. Автоматических списаний нет.
В истории приложений кнопка «Установить» сразу открывает подтверждение очереди.
Оплата выбранной очереди подтверждается до загрузки и проверки файлов.
При появлении новой версии в боковой панели появляется «Обновить».
Обновление загружается только по нажатию; размер и SHA-256 проверяются до запуска.
Работающую очередь нужно завершить перед обновлением. Профиль и баланс сохраняются.
Перед оплатой показаны и стоимость установки, и необходимая сумма пополнения.
Неиспользованный остаток остаётся на балансе. Автосписания с карты не подключены.

Если баланса хватает, дополнительной платёжной формы нет. Если средств не хватает,
форма оплаты картой ЮMoney открывается во встроенном окне программы:
Microsoft Edge WebView2 на Windows, системный WKWebView на Mac.
Банковские всплывающие окна также остаются внутри программы. Внешний браузер
программа не открывает. Банк может запросить подтверждение по SMS/в своём приложении.
Для «запомнить карту» используются только возможности формы самого ЮMoney;
собственной базы номеров карт/CVC у программы нет. Окно не имеет доступа к файлам,
Apple Account и защищённому ключу профиля через JavaScript.

Сервер зачисляет деньги только после проверки настоящего поступления, метки,
точной суммы, валюты и уникального идентификатора операции. При переводе картой
100 ₽ клиент получает 100 ₽ внутреннего баланса; комиссия ЮMoney учитывается отдельно.
После подтверждения оплаты программа автоматически продолжает ту же установку,
проверив файл и телефон перед установкой. Повтор запроса не списывает дважды;
отдельная переустановка — новый заказ. Выбранная очередь оплачивается одним заказом.

Подтверждённый отказ iOS или ошибка до передачи возвращает списание на баланс
после доставки результата серверу. Потеря связи/таймаут — неизвестный результат:
возврат не выполняется до проверки. Неиспользованное разрешение возвращается
по истечении пяти минут. При отмене позднее подтверждённое пополнение остаётся на балансе.
Отмена оплаты не закрывает Apple Account. Квитанции Payments досылают результат
после перезапуска. Статус и деньги смотрите в «Баланс и платежи» внутри программы.

На сервере хранятся технический профиль, баланс, проводки и метаданные заказа
(название/идентификатор приложения, SHA-256 файла, случайная ссылка на цель).
IPA, Apple Account/пароль/2FA, UDID, содержимое iPhone и реквизиты карты ему не нужны.
Успех подтверждает установленную версию/сборку, а не запуск и вход в приложение.

Это пилот: результат официального клиента считается доверенным, независимой
аппаратной аттестации и защиты от изменённого клиента нет. Старые бесплатные
сборки не отключены. Полноценная административная панель/приглашение сотрудников
мастерской ещё не выведены в интерфейс. Настоящий платёж и физическую установку
подтверждает пользователь; тестовые проверки их не заменяют.


УСТАНОВЩИКИ 0.7.4
Windows: запустите Windows_Setup.exe. Установка в личную папку, без прав администратора; создаётся ярлык и запись удаления. Первый запуск готовит зависимости из интернета, как в 0.6.5. Драйвер Apple остаётся отдельным требованием.
Mac: откройте DMG своей архитектуры и перетащите приложение в Applications. Python, Go и Homebrew не нужны. macOS 15+. Сборка ad-hoc, без Developer ID/нотаризации; физическая проверка с iPhone ещё требуется.
Скачанные IPA сохраняются локально вне установленной программы и не удаляются деинсталлятором.

iPhone Установщик 0.7.4
Перенос приложений между iPhone и установка файлов с компьютера

АВТОМАТИЧЕСКОЕ ОБНАРУЖЕНИЕ ВО ВСЕХ РАЗДЕЛАХ — 0.6.5

Подключите iPhone по USB и откройте нужный раздел. Телефон появится в
выпадающем списке автоматически. Просто выберите его. Для «Переноса»
по-прежнему явно назначаются старый и новый iPhone.

В «Истории приложений», «Установлено на новом», «Установить с компьютера»
и «Очереди» работает общий автоматически обновляемый список телефонов.
Кнопка «Обновить» рядом нужна только для ручной повторной попытки.
Обнаружение не требует входа в Apple Account.

Выбор сохраняется по идентификатору телефона при переименовании,
перестановке списка и переподключении. Отключённый получатель не заменяется
другим аппаратом автоматически. Ошибка поиска сохраняет последний список
и показывается как ошибка, а не как подтверждённое отключение всех iPhone.
Во время операции с телефоном опрос откладывается до её завершения.

Текущая проверка: validation/qa-report-065.txt в архиве исходников.

ДОРАБОТКИ 0.6.4

- Чёткое окно Windows на системном DPI без растягивания готовой картинки.
- Размеры окна, диалогов, строк, флажков и значков учитывают масштаб текста.
- Обновление хода переноса и очереди сохраняет прокрутку, выделение и фокус.
- Полосы прокрутки скрываются, когда всё содержимое помещается.
- Пустая очередь и список установленного объясняют следующий шаг.
- Сообщения восстановления показывают имя EXE текущей версии.

Основные сценарии 0.6.3 сохранены. При переносе окна между мониторами с разным
DPI для лучшей чёткости перезапустите программу на нужном мониторе.
Проверки 0.6.4 описаны в validation/qa-report-064.txt в архиве исходников.

ЗАПУСК EXE

1. Дождитесь завершения текущей установки и закройте предыдущую версию программы.
   Дважды нажмите iPhone_Installer_0_7_4.exe.
2. Дождитесь подготовки компонентов. При первом запуске нужен интернет;
   это может занять несколько минут. Python уже находится внутри EXE.
3. После подготовки откроется основной интерфейс.

Окно подготовки показывает текущий этап и прошедшее время. При известном объёме
отображаются измеренный прогресс и оценка остатка текущего этапа или файла.
Если время пока нельзя оценить, это указано прямо. Завершение отдельной загрузки
не означает, что закончилась вся подготовка программы.

Права администратора, установленный системный Python и ручной запуск CMD
для программы не требуются. Драйвер Apple для USB-связи с iPhone по-прежнему
должен быть установлен; если рабочая 0.5.1 уже видела телефон, он у вас есть.

EXE распаковывает свою версию в личную папку
%LOCALAPPDATA%\iPhoneInstaller\Versions.
Приложение, Python и зависимости работают из неё. Скачанные IPA хранятся отдельно:
%LOCALAPPDATA%\iPhoneInstaller\Downloads.

Окно подготовки можно отменить. Если основное приложение уже открыто, завершайте
его через собственное окно: текущую установку на iPhone нужно дождаться.

ЕСЛИ ЧТО-ТО НЕ ОТКРЫВАЕТСЯ

При ошибке подготовки EXE показывает причину и путь к диагностическому файлу.
В папке соответствующей версии находятся setup.log и launcher-setup.log.
Ошибки запуска основного окна сохраняются в application.log.
Если ошибка возникла внутри программы, нажмите «Открыть журнал» и сохраните TXT.
Пароль Apple Account и код подтверждения для диагностики присылать не нужно.

УСТАНОВИТЬ С КОМПЬЮТЕРА — НОВОЕ В 0.6.3

1. Выберите iPhone для установки в верхней части окна.
2. Нажмите «Выбрать файлы…» и отметьте один или несколько файлов .ipa.
3. Дождитесь проверки файлов. На основном экране видны приложения, версии
   и состояния. Технические сведения доступны отдельно через «Подробности».
4. Убедитесь, что в списке только нужные файлы, и нажмите «Установить».
   Переходить в «Очередь» и подтверждать запуск повторно не требуется.
5. Следите за текущим приложением, этапом и результатом в этом же окне.

Файлы можно выбрать до подключения телефона. Для локального IPA вход в Apple
Account внутри программы не требуется; право запуска приложения проверяет iOS.
Повреждённые файлы и конфликтующие версии одного приложения нужно убрать из
списка перед запуском. Файл повторно проверяется непосредственно перед установкой.

Передача файла, установка на iPhone и проверка результата — отдельные этапы.
Процент установки берётся из ответа iPhone. Когда точного процента или оценки
времени нет, программа показывает текущий этап и прошедшее время.
100% этапа установки не заменяет проверку наличия и версии приложения на iPhone.
Кнопка остановки завершает очередь на безопасной границе текущей операции.

Ранее добавленные в других разделах ожидающие задания не запускаются вместе
с выбранными локальными файлами автоматически: сначала завершите или очистите
эту очередь. Данные и лицензии приложений программа не переподписывает.

ОФОРМЛЕНИЕ И НАВИГАЦИЯ

Основной раздел — «Перенос»: подключите телефоны, назначьте старый и новый,
войдите в Apple Account, выберите приложения и запустите установку.
Отдельный пункт «Со старого iPhone» убран из бокового меню.

Другие разделы:
- «История приложений» — библиотека Apple Account и загрузка по ссылке или ID.
- «Установлено на новом» — приложения выбранного телефона для установки.
- «Установить с компьютера» — выбор файлов IPA и установка одним нажатием.
- «Очередь» — задания, результаты и управление последовательной установкой.

«Дополнительно» — заголовок группы разделов. Нажимать на него не нужно.
Боковое меню, активный раздел, карточки телефонов и основные кнопки получили
более выразительное оформление. Механизм загрузки, установки и прогресса сохранён.

ПРОГРЕСС ЗАГРУЗКИ ПРИЛОЖЕНИЙ

Во время скачивания приложения главный экран показывает измеренные байты,
полный размер и процент, когда сервер сообщает размер, скорость, прошедшее
время и оценку остатка текущей загрузки. Показатели поступают непосредственно
из потока загрузки, а не из наблюдения за размером временного файла.

Если общий размер неизвестен, отображаются скачанные байты и прошедшее время.
При ожидании ответа или паузе в поступлении данных оценка остатка уточняется.
После скачивания отображаются отдельные этапы подготовки и проверки IPA,
затем установка на iPhone и проверка результата. 100% скачивания означает,
что получен файл; статус «Установлено» требует проверки приложения на телефоне.

ИСТОРИЯ ПРИЛОЖЕНИЙ

После входа через главный экран библиотека автоматически запрашивается при
первом открытии «История приложений». Для просмотра истории подключённый iPhone
не требуется. Кнопка «Обновить» остаётся для повторной загрузки списка.
Состояния «ещё не загружено», «загрузка», пустой ответ и ошибка различаются;
до выполнения запроса программа не пишет, что Apple вернула ноль приложений.

ОСНОВНОЙ СЦЕНАРИЙ

1. Подключите оба iPhone к компьютеру по USB, разблокируйте их и подтвердите
   «Доверять», если телефон спросит. Главный экран обнаруживает подключения сам.
2. Явно выберите старый iPhone (источник списка) и новый iPhone (получатель).
   На экране видны модели и имена; один аппарат нельзя назначить на обе роли.
   Если перепутали роли, нажмите «Поменять местами».
3. Введите Apple Account, под которым нужно скачать приложения, и выполните вход.
   Если потребуется, введите код подтверждения. Это учётная запись Apple,
   а не логин от банка или другого приложения.
4. После успешного входа программа сама прочитает приложения старого телефона,
   включая сгруженные записи, и подготовит сведения о новом iPhone.
5. Отметьте приложения флажками. Поиск сохраняет ранее отмеченные приложения.
6. Проверьте указанный телефон назначения и нажмите основную кнопку установки.
   Выбранные приложения начнут последовательно загружаться и устанавливаться.
   Уже имеющиеся приложения могут обновиться; их локальные данные могут измениться.
7. Следите за текущим приложением, этапом и результатами прямо на главном экране.
   Дождитесь завершения текущей установки перед отключением нового iPhone.

Назначение «старый / новый» выбирает пользователь: модель, порядок подключения
и положение в списке сами по себе не определяют, куда устанавливать приложения.
Автоматическое обнаружение работает во всех разделах; достаточно выбрать телефон из списка.
При фоновой ошибке связи экран показывает причину; последнее успешное обнаружение
не превращается в утверждение, что оба телефона физически отключены.
После ошибки чтения доступна явная повторная попытка, в том числе над старым списком.

ДОПОЛНИТЕЛЬНЫЕ РЕЖИМЫ

История Apple Account, загрузка по ссылке/ID, список установленного на новом
телефоне, выбор IPA с компьютера и отдельная очередь доступны из бокового меню.
Для работы с приложениями старого iPhone используйте основной раздел «Перенос».

СГРУЖЕННЫЕ ПРИЛОЖЕНИЯ — ИСПРАВЛЕНИЕ 0.5.1

- При чтении старого iPhone запрашиваются также сгруженные приложения:
  используется Lookup с ShowPlaceholders, который поддерживает закреплённый
  модуль связи. Чтение остаётся адресным по USB и не требует Apple Account.
- Колонка «На старом iPhone» отделяет состояние приложения от его App Store ID:
  «Установлено», «Сгружено», «Не загружено» или «Неизвестно».
- Строки без App Store ID остаются видимыми. Если телефон не передал однозначный
  ID, программа объясняет причину недоступности установки через этот список.
- Старые сохранённые списки версии 1 открываются; состояние их приложений
  отмечается как неизвестное. Новые списки сохраняют состояние в формате версии 2.

Чтобы получить дополненный список, подключите старый iPhone и нажмите
«Повторить чтение» в разделе «Перенос».

ВОЗМОЖНОСТИ ВЕРСИИ 0.5

- Боковое меню, светлая рабочая область и отдельная карточка iPhone для установки.
- Названия вида «iPhone 16 Pro Max (iPhone Андрея)». Технический ProductType
  больше не используется как основное имя. Подпись обновляется после чтения
  устройства, а выбор сохраняется по его настоящему идентификатору.
- Флажки для нескольких приложений, выбор найденных результатов и снятие выбора.
  Поиск не сбрасывает уже отмеченные приложения.
- Последовательная очередь с отдельным результатом для каждого приложения.
- Настоящий Windows x64 EXE со встроенным переносимым Python и модулем App Store.

ОЧЕРЕДЬ В ДОПОЛНИТЕЛЬНЫХ РЕЖИМАХ

1. Подключите новый iPhone кабелем, разблокируйте и подтвердите «Доверять».
2. Дождитесь автоматического появления телефона и выберите его в карточке «iPhone для установки».
3. В разделе «История приложений» войдите в свой Apple Account и при необходимости
   введите шестизначный код подтверждения.
4. Отметьте нужные приложения флажками. Можно искать одно приложение, отметить
   его, затем изменить поиск и отметить следующее. Выбор сохранится.
5. Добавьте выбранные приложения в очередь, откройте раздел «Очередь» и запустите её.
6. Проверьте телефон назначения и перечень приложений в подтверждении запуска.
   Установка уже имеющегося приложения может обновить его и затронуть локальные данные.
7. Дождитесь результатов. Приложения скачиваются и устанавливаются по одному.

Повторно добавленное ожидающее приложение не дублируется в очереди. Целевой телефон
фиксируется при добавлении: задания не переезжают молча на другой аппарат при смене
выбора. Для другой цели очистите очередь или выберите исходный телефон очереди.

ОСТАНОВКА И ОШИБКИ ОЧЕРЕДИ

Остановка отменяет ещё не начатые задания. Текущую загрузку можно прервать;
при этом закрывается сессия Apple Account и для продолжения потребуется новый вход.
Если уже идёт установка на iPhone, она завершается; следующая не начинается.
Во время установки оставьте кабель подключённым и телефон разблокированным.

Отказ Apple в загрузке одного приложения отображается в его строке; другие задания
могут продолжиться. Потеря телефона, сессии или серьёзная ошибка модуля останавливает
очередь. После устранения причины добавьте нужные приложения заново.

Статус «Установлено» появляется после передачи пакета и проверки наличия нужного
Bundle ID, версии и сборки на iPhone. Работу самого банковского сервиса нужно проверить
отдельно, открыв приложение на телефоне.

ПРИЛОЖЕНИЯ СО СТАРОГО IPHONE

Откройте «Перенос», выберите старый и новый телефоны, затем выполните вход.
Список прочитается автоматически. Отметьте приложения и нажмите
«Установить на новый iPhone». Старый и новый телефон должны различаться.

Со старого iPhone читаются названия и точные идентификаторы. Сам IPA скачивается
у Apple под текущим аккаунтом. Данные, банковский сеанс и авторизация из старого
приложения не переносятся. После установки войдите в банк на новом телефоне.
Если ID отсутствует или неоднозначен, строка остаётся видимой, но автоматически
установить такое приложение через этот список нельзя.

Сгрузка приложения освобождает место, занятое самой программой, и сохраняет
её документы и данные на телефоне. Иконка с облачком не является установочным
IPA, который наша программа могла бы забрать со старого аппарата.

Состояние «Сгружено» определяется по явным признакам, возвращённым iOS.
Другие записи-заглушки могут означать ещё не завершённую загрузку; они показываются
как «Не загружено». При отсутствующих или некорректных признаках — «Неизвестно».
Наличие App Store ID означает только, что известен точный номер приложения.
Разрешение на скачивание и наличие файла у Apple проверяются при загрузке.

ЕСЛИ ПРИЛОЖЕНИЯ НЕТ В СПИСКЕ APPLE

Список от Apple может не содержать все когда-либо полученные приложения.
Ограничения первыми 100 строками и отдельного фильтра банков в программе нет.

Можно прочитать точный App Store ID со старого телефона либо воспользоваться
загрузкой по ссылке/ID в разделе «История приложений». Принимается старая ссылка
apps.apple.com / itunes.apple.com или её числовой ID. После ручной загрузки
программа показывает фактическое название пакета и телефон для подтверждения.

Отсутствие записи в истории не блокирует такой отдельный запрос. Но Apple всё равно
должна разрешить скачивание вошедшему аккаунту и продолжать выдавать сам пакет.
Если приложение когда-то ставили под другой учёткой, его наличие на старом телефоне
не создаёт покупку на вашей учётке. Новые лицензии автоматически не приобретаются.

Ранее сохранённый подходящий IPA можно выбрать в разделе «Установить с компьютера».
Обычная резервная копия iPhone и файл .imazingapp не заменяют установочный IPA.
Программа не извлекает исполняемые файлы из памяти телефона и не переподписывает их.

АККАУНТ, ДАННЫЕ И ПРОВЕРКИ

Пароль, код подтверждения, cookies и токены сессии не записываются программой
в её журналы или файлы аккаунта. После закрытия программы требуется войти заново.
После успешного входа пароль удаляется из используемой записи в памяти.
Сам скачанный IPA может содержать адрес аккаунта в лицензионных метаданных Apple.

Экспорт списка старого телефона содержит его имя, UDID и сведения о приложениях.
Сырые iTunesMetadata, SINF, email и идентификатор владельца приложения не экспортируются.

Перед установкой проверяются идентичность выбранного приложения, структура IPA,
совместимость и SHA-256 файла. Установка адресована точному выбранному USB-устройству.
Криптографическую подпись и право запуска окончательно проверяет iOS.

Программа не стирает телефон, не удаляет приложения автоматически, не отключает
«Локатор», не меняет системный Python, PATH или автозагрузку Windows.

ПРОВЕРКА ВЕРСИИ

Работа версии 0.5.1, включая сгруженные приложения, подтверждена пользователем.
В 0.6 добавлены основной сценарий с двумя телефонами, автоматическое обнаружение
и понятный прогресс подготовки программы. В 0.6.1 исправлена передача измерений
загрузки из модуля App Store и их отображение на главном экране.
В 0.6.2 обновлены оформление и названия разделов.
В 0.6.3 упрощена установка локальных файлов: несколько IPA, одна кнопка запуска,
прогресс и результаты в том же окне. Процент установки передаёт служба iPhone.
Модуль загрузки приложений из App Store сохранён.
Локальные проверки используют синтетические данные и не обращаются к Apple Account
пользователя. Новый EXE собирается для Windows x64, проверяется его формат и состав;
GUI проверяется на тестовом экране. Физический iPhone и Windows для полного запуска
этой сборки в среде разработки недоступны.

ДЛЯ РАЗРАБОТКИ И ВОССТАНОВЛЕНИЯ

В распакованной папке версии доступны Python-исходники, тесты, README и лицензии.
START.cmd сохранён как альтернативный запуск из этой папки. BUILD_EXE.cmd — прежний
необязательный вариант PyInstaller; сам поставляемый EXE собирается кодом в launcher.
Подробности воспроизводимой сборки native launcher находятся в launcher/README.md.

Основные файлы:
app.py — интерфейс и последовательный запуск заданий;
ui_theme.py — оформление, состояния элементов управления и пиктограммы;
local_packages.py — список локальных файлов, их проверка и состояния;
device_install.py — передача IPA в штатную службу iPhone и измеренный прогресс;
transfer_flow.py — явные роли телефонов и проверка актуальности выбранной пары;
transfer_progress.py — измеренный прогресс загрузки, скорость и оценка времени;
batch_queue.py — состояние очереди и защита от устаревших результатов;
device_display.py — нормальные имена устройств и чтение сведений для списка;
store_backend.py — рабочий модуль App Store и проверка скачанного IPA;
device_backend.py — связь с устройством и проверяемая установка;
source_apps.py — чтение идентификаторов со старого телефона;
ipa_inspect.py — анализ IPA без исполнения кода;
bootstrap.py — подготовка вложенного Python и закреплённых зависимостей;
setup_progress.py — структурированный прогресс подготовки компонентов;
launcher — исходники настоящего Windows GUI EXE;
engine — готовый модуль App Store, его исходники и сторонние лицензии.

ИСХОДНИКИ И ЛИЦЕНЗИИ

Python-исходники установщика: GPL-3.0-or-later, текст в LICENSE.txt.
pymobiledevice3 11.49.2: https://github.com/doronz88/pymobiledevice3
Он и зависимости загружаются с PyPI при первом запуске.

Модуль App Store: ipatool (MIT), https://github.com/majd/ipatool
Закреплённый исходный commit: d9c0247daea564d3ec7d04a9b015d0a29af66b04.
Добавлен адаптер сессии в памяти, список без локального разбиения на страницы,
адресная загрузка по ID и проверка идентичности скачанного пакета.
Источник и лицензии находятся в engine.

Документация по возможностям переноса:
https://support.apple.com/en-us/108771
https://imazing.com/blog/imazing-1-3-app-back-uprestore
https://github.com/jowtron/ipa-downloader

Сгруженные приложения и поддержка ShowPlaceholders:
https://support.apple.com/guide/iphone/manage-storage-on-iphone-iph47c931112/ios
https://github.com/doronz88/pymobiledevice3/issues/1602

Переносимый Python: Astral python-build-standalone, официальный выпуск 20261026.
Архив: cpython-3.14.10+20261026-x86_64-pc-windows-msvc-install_only_stripped.tar.gz
SHA-256: c1876a9795d3a94ee49a1499a69cd91e26ca3e2829593f93fa6e4db90d05402b
https://github.com/astral-sh/python-build-standalone/releases/tag/20261026
Лицензии Python и его компонентов сохранены внутри runtime/python.
