iOS-разработчики игнорируют важную системную фичу, и это ломает их приложения

от автора

Как минимум одна из фич iOS реализована действительно хорошо — это системное резервное копирование, и всё, что связано с автоматическим переносом данных при переезде с одного iPhone на другой.

Что бы ни случилось с вашим устройством, сломалось ли оно, или его украли, все ваши данные — от заметок и фотографий до установленных приложений и всех выполненных в них настроек — всегда останутся в целости и сохранности, если только у вас достаточно свободного места в iCloud. Буквально в несколько простых действий вы легко вернёте в точности всё, как оно было.

Это же актуально, если вы просто решили обновиться на более новую модель iPhone — кладём старое и новое устройство рядом на часок-другой, и вуаля, вот вам совершенно бесшовный переезд!

Однако в случае с некоторыми iOS-приложениями старания Apple внезапно разбиваются о небрежность их разработчиков. Именно с этим я недавно столкнулся, выполнив перенос данных со своего старого iPhone на новый, и много где результаты оказались довольно печальными. Вот вам лишь несколько примеров…

  • Telegram. 👎 Приложение сбросило абсолютно все свои настройки, в том числе выбросило меня из учётной записи. И если разлогин я ещё могу как-то связать с некими соображениями безопасности, хотя даже так он продолжает вызывать у меня вопросы, то почему потерялись все выставленные мной настройки приложения? Их там довольно много, и проходить по ним с нуля было не слишком приятно.

  • YouTube. Опять-таки разлогин. Но здесь хотя бы не потерялись настройки.

  • Тинькофф. 🚨 Вот здесь совсем плохо. При запуске приложение показывает свой штатный экран блокировки, но больше не пускает внутрь ни по Touch/Face ID, ни по корректному код-паролю. Итого, перед пользователем с виду штатно функционирующее приложение, но им невозможно воспользоваться, нельзя никак попасть внутрь. Причём не получается даже выйти из учётной записи, чтобы вручную перелогиниться — только полная переустановка, только хардкор.

  • Freedom Finance. Приложение совсем упоролось и начало стабильно падать при каждом запуске. Единственное решение — опять-таки ручная переустановка.


Тут возникает закономерный вопрос — почему так получается, и что с этим делать?

Во-первых, не игнорируйте столь важную системную фичу. Ваши пользователи плюс-минус гарантированно сталкиваются с ней раз в несколько лет, когда обновляются на новое поколение iPhone, и описанное, например, выше поведение Т-Банка совершенно неприемлемо. Не поленитесь — возьмите парочку тестовых устройств и проверьте, насколько корректно ваши приложения переживают восстановление iOS из iCloud и автоматический перенос данных между устройствами.

Во-вторых, обратите внимание на следующие аспекты…

  • Device ID. Если вы используете для каких-то целей идентификатор физического устройства, будьте готовы, что он может внезапно измениться.

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

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

  • File Manager. Операционная система успешно забэкапит или перенесёт большинство штатных директорий вашего приложения, однако не обессудьте, если вы вдруг почему-то используете сомнительные решения и храните, например, постоянные данные во временных папках или среди кэша.


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

Большое спасибо!

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

Вы когда-нибудь проверяли работу своего приложения после восстановления iOS из бэкапа или переноса всех данных на другое устройство?

0% Да, проверял(-а)0
43.48% Нет, не проверял(-а)10
56.52% Я не разрабатываю iOS-приложения13

Проголосовали 23 пользователя. Воздержались 6 пользователей.

ссылка на оригинал статьи https://habr.com/ru/articles/868698/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *