Як повернути минулу версію програми з appstore

Доброго часу доби, дорогі читачі!

Як повернути минулу версію програми з appstore

Так ось, як з цим бути? Швидше за все більшість з вас почують тільки дві відповіді на це питання:

  1. Ніяк, Жізньболь, Всётлен;
  2. Перейти на Андроїд, там таких проблем немає.

Однак, є і третій варіант (я зараз не розглядаю джейлбрейк і режим розробника) - це завантажити одну з попередніх версій. При цьому, все легально і ми нічого не порушимо :)

Суть цього методу ось у чому: ми хочемо скачати з AppStore додаток, AppStore у відповідь надсилає нам список доступних версій, ми вибираємо потрібну і викачуємо її. Після цього встановлюємо додаток на свій рідний iPhone або iPad.

Зараз багато хто, напевно, здивувалися, адже нам не пропонують жодних версій (крім деяких випадків, коли ваш пристрій не підтримує останню версію і вам пропонують завантажити останню робочу). Так ось, пропонують, просто ми про це не знаємо і наш iTunes сам вирішує за нас, завантажуючи останню версію.

Для роботи нам знадобиться: iTunes. мобільний девайс, і одна невелика програмка під назвою Charles. Вона платна, але її можна використовувати в демо-режимі з повним функціоналом, просто час від часу буде вилазити банер з лічильником і пропозицією купити програму, плюс вона сама закриється через пів години часу.

Charles Web Debugging Proxy

Отже, викачуємо Charles. наприклад, звідси. З установкою нічого складного, тому запускаємо її і бачимо банер, який ви ще не раз побачите:

Як повернути минулу версію програми з appstore

Після 10 секунд з'явиться основне вікно:

Як повернути минулу версію програми з appstore

Тепер трохи про те, що ця програма, власне, робить. А робить вона наступне: вона моніторить мережу і показує які запити були відправлені і які відповіді були отримані (так, це проксі). Однак для правильної роботи потрібно правильно виставити настройки проксі, але нас зараз це не цікавить.

Тепер відкриваємо iTunes. в пошуку AppStore вводимо VK. тиснемо Enter. знаходимо оф додаток від ВК і викачуємо його:

Як повернути минулу версію програми з appstore

Досить завантажити відсотків 10 від додатка, після чого сміливо скасовувати завантаження (виберіть завантаження і натисніть на клавішу Delete):

Як повернути минулу версію програми з appstore

Це нам потрібно, щоб Charles отримав інформацію. Відкриваємо тепер його і бачить приблизно таке:

Як повернути минулу версію програми з appstore

Фактично, він просто моніторить звичайні POST / GET запити і обробку їх вмісту в зручному для нас вигляді (запити від Apple передаються, наприклад, в xml синтаксисі)

Справа в тому, що це зашифрований запит і за замовчуванням Charles не вказує такі запити. Так що клацаємо правою кнопкою по рядку і вибираємо Enable SSL Proxying:

Як повернути минулу версію програми з appstore

Далі знову повторюємо фішку з завантажувати її (якщо у вас написано "Завантажено", хоча ви скасували завантаження, то обновіть сторінку натисканням на заголовок додатка) та її подальшої відміни (якщо не скасувати, то доведеться видаляти додаток, а це зайві рухи тіла). Потім переходимо назад в Charles. розкриваємо список і переходимо по шляху WebObjects - MZBuy.woa - wa - buyProduct. Далі клацаємо на buyProduct і в правому вікні переходимо в панель Response. Прокручуємо наша відповідь від AppStore до рядка softwareVersionExternalIdentifiers :

Як повернути минулу версію програми з appstore

Нижче ви побачите список номерів версій (так, це не самі версії, а якийсь номер). На жаль, дізнатися яким номером яка версія відповідає ми не зможемо, тому доведеться йти навмання. Нам потрібна версія 2.0. тому що це остання версія, де можна було слухати аудіозаписи. Зберігаємо весь список з номерами, він нам потім стане в нагоді.

Далі прямуємо за методом дихотомії (якщо обрана нами версія вище, ніж 2.0. То нижче за списком йти не потрібно, вона десь вище і навпаки). Вибираємо, наприклад, номер 813678592. Зберігаємо де-небудь і, найголовніше, тепер тиснемо правою кнопкою по buyProduct і вибираємо пункт Breakpoints:

Як повернути минулу версію програми з appstore

Далі у мене закінчилися 30 хвилин і програма видала:

Як повернути минулу версію програми з appstore

Так що мені довелося заново проробляти всі операції :)

Загалом, встановили ми брейкпоінт. Це означає, що перед відправкою запиту на скачку ПО програма цей запит перехопить і не відправить, поки ми не скажемо. Ми в цьому запиті поміняємо одну сходинку (щоб відправити запит не для останньої версії ПО, а потрібної нам) і тільки після цього відправимо. Знову завантажуємо додаток і тут відразу з'явиться вікно Charles:

Як повернути минулу версію програми з appstore

Міняємо рядок номер 5 на 813678592 і тиснемо на кнопку Execute. Після цього ще раз тиснемо на кнопку Execute і чекаємо коли додаток скочується. Дивимося версію завантаженого нами програми та бачимо:

Як повернути минулу версію програми з appstore

На жаль, повз. Видаляємо цю версію і пробуємо інший номер. При цьому варто враховувати, що там, по всій видимості, є якісь проміжні версії, які не будуть скачиваться, замість них скочується остання (на даний момент - це версія 2.8). І таким чином знаходимо той самий номер 166062632 (я його вгадав з двох спроб :)):

Як повернути минулу версію програми з appstore

На цьому робота з Charles закінчена і можна встановлювати додаток на ваш пристрій. Тільки не забувайте, що старі версії можуть трохи дивно працювати, особливо, якщо це додатки для соціалок :)

При цьому, якщо вам набридне слухати музику, можете прямо на самому пристрої оновити додаток, як ви це зазвичай робите. У мене таким чином стоїть стара версія Mi Fit (1.6.2. Номер 816329811. якщо хто користується браслетами Mi Band), в якій розумний будильник ще живий.

Післямова

Якось так. Таким нехитрим способом можна встановити практично будь-яку версію практично будь-якої програми, тому що багато розробників залишили список версій для сумісності зі старими пристроями :)

PS: За існування оной статті окреме спасибі одному проекту і члену нашої команди під ніком "barn4k".

Схожі статті