Приложение перестало открываться после обновления iOS: что делать
Мобильное приложение ломается после обновлений iOS и Android, из-за устаревших библиотек и изменений на сервере или в 1С. Исправить сбой помогает разбор лога падений, воспроизведение на тестовом устройстве и срочный релиз. Чтобы ситуация не повторялась, приложению нужна регулярная поддержка: проверка на бета-версиях ОС, обновление зависимостей и мониторинг сбоев.
🔍 Почему возникает сбой после обновления телефона или приложения
Понедельник, девять утра. Торговый представитель оптовой компании приходит в магазин, открывает приложение, чтобы принять заказ, и видит логотип на две секунды, а затем рабочий стол телефона. За выходные система обновилась до новой версии iOS.
Приложение сдали два года назад. Подрядчик закрыл проект и перешёл к другим задачам, поэтому никто не проверил, как оно поведёт себя на свежей системе. Библиотека для сканирования штрихкодов обращается к камере по-старому, система это больше не пропускает, и приложение закрывается при запуске. Представитель звонит менеджеру и диктует заказ, менеджер вносит его в 1С вручную. К обеду так работают все, у кого телефон успел обновиться.
Такие отказы вырастают из четырёх причин.
- ✓Новая версия iOS или Android меняет правила работы камеры, прав доступа, уведомлений и фоновых процессов. Новые версии выходят каждую осень.
- ✓Библиотеки внутри приложения устарели, а их авторы перестали выпускать обновления. Приложение зависит от чужого кода, и чужой код ломается первым.
- ✓Изменилась серверная часть. Например, программисты обновили конфигурацию 1С и поменяли формат обмена, а приложение об этом не знает.
- ✓Магазин приложений поднял требования. Google Play, например, периодически повышает минимальную целевую версию Android API, и сборку на устаревшей версии опубликовать не получится.
Что теряет бизнес, пока приложение не работает
Ставка зависит от того, для чего сделано приложение. Если оно у торговых представителей, каждый час простоя превращается в заказы по телефону, ошибки при ручном вводе и потерянное время агентов. Если им пользуются клиенты, они уходят к конкуренту, а в магазине остаётся оценка в одну звезду с комментарием «не открывается». Если сборку не успели выпустить до срока, который поставил магазин, приложение перестаёт обновляться, а вместе с этим теряет возможность исправлять любые другие ошибки.
🛠 Как исправить сбой после обновления: порядок действий
Чем быстрее собраны факты, тем короче простой. Порядок работы такой.
- ✓Собрать отчёты о падениях: версия системы, модель устройства, версия приложения, стек вызовов. Если сбор падений не подключён, подключите его первым делом: без отчётов разработчик гадает.
- ✓Найти общее у пострадавших. Падает только на новой iOS? Только на телефонах одного производителя? Только у тех, кто не обновил приложение?
- ✓Воспроизвести ошибку на тестовом устройстве с той же версией системы. Если на тестовом всё работает, проверьте сервер и обмен с 1С: приложение могло получить от них ответ в новом формате.
- ✓Исправить причину, а не симптом: обновить или заменить библиотеку, поправить разбор ответа сервера. Заглушка, которая прячет ошибку, вернётся на следующем обновлении системы.
- ✓Выпустить сборку и ускорить публикацию. Сроки проверки в магазинах (App Store, Google Play, RuStore) от разработчика не зависят, поэтому на время ожидания дайте сотрудникам обходной путь: закрытое тестирование или корпоративную раздачу сборки.
- ✓Включить принудительное обновление для старых версий, если они несовместимы с сервером.
Если сломалась связка с 1С
Приложение для склада или торговли берёт из 1С остатки, цены и заказы. Конфигурацию 1С обновили, формат обмена изменился, а приложение об этом не знает, поэтому получает пустые ответы или ошибки. Разбираться приходится с обеих сторон сразу. Мы делаем интеграцию приложения с 1С и поддерживаем обе части, поэтому причину ищем в одном контуре, а не пересылаем претензии между двумя подрядчиками.
♻️ Что делать, если ошибка повторяется снова и снова
Третий раз за год приложение падает после очередного обновления системы. Каждый раз разработчика зовут, он правит, выставляет часы, а через несколько месяцев всё повторяется.
Причина в том, что каждое падение чинят по отдельности, но у них общий источник: код, который давно не обновляли, и отсутствие человека, отвечающего за приложение целиком. Поэтому заплатка закрывает один экран, а ломается следующий.
Признаки того, что проблема в основе, а не в отдельной ошибке:
- ✓падения возникают в разных местах, но всегда на одних и тех же версиях системы;
- ✓исправление на одном экране ломает другой;
- ✓библиотеки в проекте давно не обновлялись, а у некоторых автор перестал выпускать версии;
- ✓у приложения нет автоматических тестов, и никто не знает его целиком.
Здесь помогает аудит кода. Разработчик просматривает зависимости, архитектуру и тесты, и вы получаете список: что обновить, что заменить, что переписать. Чаще хватает переписать один модуль, а не весь проект. Полная переделка оправдана, когда основной фреймворк заброшен и безопасных обновлений для него нет.
Отдельно решите, кто будет следить за приложением дальше. Вот четыре способа.
| Модель | Что получает бизнес | Слабое место |
|---|---|---|
| Чинить по факту, когда сломалось | Нет постоянных расходов | Простой при каждом обновлении системы, срок исправления зависит от того, кто свободен |
| Почасовая работа по заявкам | Оплата только за сделанное | Между заявками за приложением никто не следит, о сбоях узнают от клиентов |
| Регулярная поддержка по регламенту | Проверка на бета-версиях ОС, плановое обновление библиотек, мониторинг падений | Платить приходится каждый месяц, даже когда ничего не ломалось |
| Своя команда мобильных разработчиков | Полный контроль и быстрая реакция | Зарплаты, поиск людей, замена при уходе; для одного небольшого приложения дорого |
Для малого и среднего бизнеса чаще всего работает третий вариант: своих мобильных разработчиков держать дорого, а модель «чиним, когда сломалось» повторяет историю из начала этого раздела.
🛡 Как предотвратить поломки при следующем обновлении iOS и Android
Новые версии систем выходят по календарю: бета-версии доступны летом, финальные релизы приходят осенью. Это окно, в которое приложение проверяют заранее, а не после жалоб.
- ✓Прогонять приложение на бета-версиях iOS и Android летом и закрывать замечания до выхода финальной системы.
- ✓Держать тестовые устройства: по одному на каждую актуальную версию системы, которой пользуются ваши сотрудники или клиенты.
- ✓Подключить сбор падений, чтобы узнавать о проблеме раньше клиентов.
- ✓Обновлять зависимости по плану. Небольшие регулярные обновления обходятся дешевле одного большого переписывания.
- ✓Версионировать обмен между приложением и сервером или 1С. Сервер должен понимать и новую, и прошлую версию приложения: не все обновляются в день релиза.
Сторонние библиотеки и персональные данные
При обновлении легко подключить новую библиотеку аналитики или уведомлений и не заметить, что она отправляет данные пользователей на зарубежный сервер. 152-ФЗ требует, чтобы первичная запись и хранение персональных данных россиян шли в базах на территории России. Поэтому каждый новый SDK проверяют на это до выхода сборки.
Если приложение сделано на 1С:Мобильной платформе
Приложение, разработанное на 1С:Мобильной платформе, использует ту же технологию, что и учётная система, поэтому формату данных расходиться сложнее. Но у такого приложения тоже есть версия платформы, и её обновление планируют заранее так же, как обновление iOS и Android.
💼 Сколько стоит поддержка приложения и как её организуем мы
Новое приложение у нас стоит от 500 000 руб. Поддержку считаем отдельно: цена зависит от числа платформ, объёма интеграций и частоты релизов, поэтому точную сумму называем после просмотра кода и обмена с 1С. Общие условия и ставки лежат на странице цен и тарифов. Работа специалиста по 1С-части, то есть сопровождение 1С и системное администрирование, стоит 3800 руб/час.
Чем это отличается от обычного подрядчика по мобильной разработке:
- ✓приложение и 1С поддерживает одна команда, и когда ломается обмен, нет спора, чья это зона; так устроены наши B2B-приложения с 1С для торговых представителей и заказов клиентов;
- ✓чужое приложение берём после аудита: сначала список рисков и зависимостей, затем план исправлений, а не обещание «всё починим»;
- ✓поддержка идёт по регламенту: проверка на бета-версиях летом, отчёт о падениях, график обновления библиотек.
Если приложение уже падает или вы выбираете подрядчика на новую разработку, опишите ситуацию на странице разработки мобильных приложений: мы скажем, чинить его или переписывать.
❓ Частые вопросы
Как часто нужно обновлять мобильное приложение?
Минимум раз в год под новые версии iOS и Android: бета-версии систем выходят летом, финальные осенью, и приложение проверяют до релиза. Библиотеки обновляют по плану раз в несколько месяцев, а исправления безопасности выпускают сразу. Если приложение связано с 1С, релиз добавляют после каждого изменения формата обмена.
Почему приложение перестало работать после обновления телефона?
Новая версия iOS или Android меняет правила работы с камерой, правами доступа, уведомлениями и фоновыми процессами. Если приложение или его библиотеки не проверяли на новой системе, оно падает при запуске или теряет часть функций. Причину находят по отчёту о падении: в нём видна версия системы и строка кода, где произошёл сбой.
Сколько стоит поддержка мобильного приложения?
Цена зависит от числа платформ, объёма интеграций и частоты релизов, поэтому точную сумму называем после просмотра кода. Разработка нового приложения у нас стоит от 500 000 руб, сопровождение 1С-части и системное администрирование 3800 руб/час. Общие условия лежат на странице цен и тарифов.
Что делать, если приложение падает у клиентов, а прежнего разработчика нет?
Начните с отчётов о падениях в консолях магазинов, чтобы понять, на каких версиях системы ломается. Затем закажите аудит кода у команды, которая принимает чужие проекты: она проверит зависимости и исходники, назовёт причину и скажет, чинить приложение или переписывать. Исходники и доступы к аккаунтам магазинов должны быть у вас.
Нужно ли заставлять пользователей обновлять приложение?
Принудительное обновление включают, когда старая версия небезопасна или несовместима с сервером или 1С. В остальных случаях сервер должен понимать и новую, и прошлую версию приложения: часть пользователей обновляется не сразу. Так релиз не ломает работу тем, кто не успел обновиться.
Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00
Остались вопросы? Нужна помощь?
Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.
Бесплатная консультация

