Как понизить версию приложения из App Store без джейлбрейка

app store 8

За счёт постоянных багов в новых версиях iOS даже те пользователи, у которых iPhone является «звонилкой», начали интересоваться процессом отката (даунгрейда) прошивок. Для открытых сборок он проходит элементарно, а для закрытых — невозможен. Но это касается исключительно мобильной ОС, с приложениями дела обстоят куда лучше. Без джейлбрейка, энциклопедических знаний и уймы времени можно легко понизить версию объекта App Store до желаемой. Необходимо только скачать правильную программу-помощник и следовать инструкциям, изложенным ниже.

Самые популярные причины для отката — это повышение требуемой версии ОС (как вариант, переход с iOS 6 на iOS 7) и умышленное вырезание разработчикам определённых функций. Как раз второй пункт и вынудил нас написать этот материал. В редакции AppStudio тепло отзываются о доступных и, в то же, время функциональных фитнес-браслетах Xiaomi Mi Band 1s, фирменное приложение которых со второй версии лишилось умного будильника, поднимающего вас с кровати в быструю фазу сна — серьёзная потеря, ведь некоторые покупали гаджет только ради комфортного пробуждения! В подобной ситуации можно либо ждать грядущего обновления, либо сделать даунгрейд, чем, мы, собственно, и займёмся.

Снимок экрана 2016-04-10 в 15.47.46

Первым делом загружаем приложение Charles. Это отличный HTTP-монитор и прокси, позволяющий отслеживать любые запросы между клиентом и сервером, а также вносить в них собственные корректировки. Программа платная, но пробный период эксплуатации имеется, хоть и с периодическими всплывающими окнами ожидания и прекращением работы через каждые полчаса, поэтому будьте внимательны.

Снимок экрана 2016-04-10 в 15.49.23

Запускаем iTunes и ставим на загрузку нужное приложение. Мы решили взять в качестве примера Moves (2.7.10).

Снимок экрана 2016-04-10 в 15.59.36

Возвращаемся к Charles и смотрим на левое окно — там должна появиться строка, в которой есть слово «buy». Кликаем по ней правой кнопкой и нажимаем на «Enable SSL Proxying». Зрительно ничего не произойдёт, мы просто активируем перенаправление SSL-запроса.

Снова идём в iTunes и убиваем загрузку: щёлкаем на значок со стрелочкой в правом верхнем углу, кликаем по качающемуся приложению, а затем с зажатой клавишей FN 2 раза жмём Backspace, пока объект не исчезнет. Заодно не мешает очистить корзину.

Теперь снова вбиваем в поиск Moves (либо нажимаем на большую иконку приложения) и снова начинаем загрузку.

Снимок экрана 2016-04-10 в 16.00.07 2

Опять залезаем в Charles и видим, что появилась вторая строчка с надписью «buy». Поэтому убиваем загрузку в iTunes тем же самым способом.

Снимок экрана 2016-04-10 в 16.00.15 2

В Charles, в списке слева, разворачиваем вторую строку, где написано «buy», включая папку WebObjects. Там найдём файл buyProduct. Жмём на него правой кнопкой, из контекстного меню выбираем Export и указываем место сохранения (проще всего поставить Рабочий стол). Формат лучше выбрать XML Summary File, название — какое угодно.

Снимок экрана 2016-04-10 в 16.01.37

Открываем сохранённый файл любым текстовым редактором (у нас Coda 2), листаем вниз и ищем строки, аналогичные этим:

<integer>6940998</integer>
<integer>10969069</integer>
<integer>11758907</integer>
<integer>12262840</integer>
<integer>12679839</integer>

Здесь содержатся маркировки всех версий приложения: вверху находится самая старая, а ниже идут более свежие. Вам нужно выбрать ту, до которой собираетесь откатиться: в iTunes зайдите на страничку приложения, нажмите «Показать все версии» и банально отсчитайте её. Скопируйте нужную версию, находящуюся между тегами <integer>.

Снимок экрана 2016-04-10 в 16.07.27

Возвращаемся к Charles. Жмём на buyProduct и выбираем Edit.

Снимок экрана 2016-04-10 в 16.07.43 2

Щёлкаем по кнопке Text в правом поле. На четвёртой строке располагаются теги <key>:

<key>appExtVrsId</key>

А под ними теги <string> и ключевое значение текущей версии приложения.

<string>816441851</string>

Замените число между этими тегами <string> тем, что скопировали в шаге выше, когда отсчитывали правильную версию. Нажмите Execute внизу.

Снимок экрана 2016-04-10 в 16.10.17 2

Чтобы убедиться в правильности загружаемой версии, кликните по вкладке Response и пролистайте текст до тегов с обозначением <key>bundleShortVersionString</key>, под которыми и будет находиться текущая версия. Как видите, маркировка «0.9» говорит об успешности эксперимента. Но это ещё не всё.

Снимок экрана 2016-04-10 в 16.11.28

Кликаем правой кнопкой по buyProduct и выбираем Breakpoints.

Снимок экрана 2016-04-10 в 16.15.02

Заходим в iTunes, вбиваем в поиск приложение и загружаем его. Практически сразу загрузка приостановится, а на экране появится вот такое окошко.

Снимок экрана 2016-04-10 в 16.15.30

Жмём на Edit Request, чуть ниже выбрав XML Text.

Снимок экрана 2016-04-10 в 16.15.56 2

В пятую строку, между тегами <string>, нужно вставить версию, которую вы уже копировали и на которую желаете откатиться. Теперь давим на Execute.

Снимок экрана 2016-04-10 в 16.16.56

Появится ещё одно окошко — опять жмём Execute.

Снимок экрана 2016-04-10 в 15.40.36

Загрузка в iTunes должна продолжиться. В итоге в медиатеке появится старенькая версия приложения. Чтобы проверить её, перейдите в Мои программы, найдите там желаемый объект, кликните по нему правой кнопкой мыши и выберите Сведения. Там как раз и отобразятся текущие цифры, которые должны вас порадовать ;)

Обязательно удалите свежую версию с iPhone/iPad перед синхронизацией, а также неплохо было бы отключить автоматическое обновление программ в настройках iOS. Без лишней надобности можно и с Charles расстаться. На этом, пожалуй, всё. Удачных вам даунгрейдов ;)