Как минимум одна из фич 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.
Большое спасибо!
ссылка на оригинал статьи https://habr.com/ru/articles/868698/
Добавить комментарий