Как откатить обновление приложения на iOS

Случается так, что после обновления приложения для iPhone или iPad необходимо совершить «откат» и возникает вопрос как вернуться к предыдущей версии. Пользователь AndreyYu на geektimes.com решил вопрос.

Раньше достать ipa—файл приложения было делом 2 минут, достаточно было зайти на apptrackr и скачать, но он перестал работать и других подобных ресурсов дающих честно скачать ipa файл обнаружено не было (но вдруг вы такие знаете?).

Подпишитесь на наш канал Телеграме, чтобы узнать больше полезных советов

Остались следующие способы получения старой версии приложения:

  1. У вас в iTunes лежит старый бэкап приложений с телефона и тогда можно просто скопировать приложение обратно (но у меня такого не было).
  2. Воспользоваться способом, описанным на скорую руку кем-то в интернете с помощью софта под названием Charles. Данный способ описан на ресурсах вроде 4dpa и пере-копирован множествами лиц без понимания что там вообще написано, однако, без дополнительных >100 грамм разобраться с этой писаниной сложно.

Возможно, я это сделаю более полно, с картинками и в более простой понятной форме. В общем, чтобы скачать софт старой версии из AppStore потребуется минут 5 времени и в моём случае Mac OS X. Способ явно будет работать и на Windows, т.к. приложение Charles есть и для этой системы.

Все ваши мучения начнутся ещё до того, как вы скачаете Charles. Дело в том, что если вы обновляете iTunes на Mac, то у вас будет отсутствовать возможность устанавливать приложения, начиная с версии 12.7. Чтобы её вернуть, нужно установить обратно версию 12.6.4.

Что делать дальше чтобы откатить обновление приложения на iOS

Коротко: загрузить приложение через AppStore в iTunes, затем включить прокси, затем загрузить ещё раз, отредактировать запрос, отправить запрос, получить старую версию, установить.

Подробно: после запуска Charles нужно установить сертификаты приложения в Mac. Это делается через меню Help → SSL Proxying → Install Charles Root Cetrificate. Сертификат затем нужно в Keychain Access перевести в статус Always Trust. Если не установить, то будут ошибки и метод не сработает.

В iTunes ищем приложение Inoreader (это для любого приложения подойдёт, но меня интересовало в тот момент только оно), запускаем Charles и нажимаем в окне установки приложения Download:

В окне Charles у вас появляется подобная строчка со слово «buy» в адресе, связанная с сервером apple:

Для информации можно обратить внимание на то, что размер скачиваемого файла равен 20,4 мб:

После чего нужно включить SSL Proxying для осуществления перехвата и редактирования запросов:

Т.к., вероятней всего, у вас быстрый интернет и приложение уже успело загрузиться в библиотеку приложений, то необходимо его оттуда удалить.

Ещё раз проверяем, что SSL Proxying включен и переходим к повторной загрузке приложения из AppStore при этом нужно поставить загрузку на паузу, чтобы у вас было время на следующие действия. После нажатия на Download в окне Charles появится ещё одна строка в сервером apple, содержащая слово «buy». Развернув эту строку нужно найти buyProduct:

Справа в окне нажимаем на Contents и внизу выбираем XML Text. Листаем вниз пока не найдем softwareVersionExternalIdentifiers со списком не понятным цифр.

Эти цифры и выступают в роли версий приложений. Соответственно, чем меньше число, тем старее версия приложения. Как узнать какая версия приложения будет загружена? Например, я наугад брал с конца списка значение 823964615:

Теперь нам нужно проверить версию приложения. Для этого мы делаем встаем на «buyProduct» и в меню выбираем Compose и справа в окне представление Text.

В самом верху поля будет знакомый вам набор цифр после параметра <key>appExtVrsId</key>. Этот набор цифр — актуальная версия приложения.

Вместо этих цифр подставляем скопированные выше 823964615 и должно получиться вот так:

и делаем Execute. Программа выдаст вам окно и выбрав режим отображения XML Text мы сможем внизу найти параметр bundleShortVersionString и увидим, что выбранное нами значение соответствует версии 5.4.4, что в моём случае то что нужно, т.к. эти версия практически последней перед обновлением до 6.0

Остаётся один шаг. Нужно скачать всё это дело. Для этого нужно в нашем последнем отредактированном запросе buyProduct с полученной версией 5.4.4 в меню выбрать Breakpoints.

По новой перейти в AppStore для загрузки приложения Inoreader (если приложение успело загрузиться в библиотеку и вы не успели его остановить, то просто удалите, чтобы была возможность загрузить заново).

Как только вы в iTunes нажмете скачать, то выскочит окно Charles, где нужно будет нажать на Edit Request и в уже знакомом параметре appExtVrsId исправить версию на 823964615, нажать Execute, а затем ещё раз на Execute.

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

В библиотеке приложений itunes появится значок программы с ярлыком Update. Это и будет означать, что вы сделали всё верно. Можно сделать Get Info приложения и будет написано:

Дальше у приложения смотрим где оно находится в файловой системе и сохраняем на будущее если вдруг решите обновить приложение 🙂

По завершение работы следует в Charles сделать Disable SSL Proxying кликом на сервере p30-buy.itunes.apple.com.

Надо сказать, что получилось проделать у меня данную процедуру с 2 раза.
Надеюсь, это будет кому-то так же полезно как оказалось мне.

Источник geektimes.com | Автор

Комментариев: 3
  1. После включения SSL Proxying Айтюнс отказывается скачивать приложение, и выдает ошибку невозможно установить безопасное соединение. Сиситема Mac os H Sierra
    Как быть?

    • Судя по всему, проблемы на этапе запуска Charles. Возможно, вы не установили или не полностью установили сертификаты приложения в Mac.
      Попробуйте еще раз через меню Help → SSL Proxying → Install Charles Root Cetrificate. После чего сертификат Keychain Access перевести в статус Always Trust.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован.