Как очищать кэш мобильных приложений на iOS и Android?
Что проверяют
Понимаете ли вы разницу между кэшем и данными приложения и зачем тестировщику вообще их чистить: первый запуск, онбординг, инвалидация кэша после обновления, работа офлайн. Следом обычно спрашивают, как вы проверите обновление приложения поверх старой версии.
Как отвечать
Разведите два действия. Очистка кэша удаляет временные файлы, которые приложение может скачать заново. Очистка данных возвращает приложение в состояние «только что установлено», с потерей логина, настроек и локальной базы.
Android:
- через настройки: «Приложения», нужное приложение, «Хранилище», дальше «Очистить кэш» (только каталог кэша) или «Очистить хранилище» (всё);
- через adb:
adb shell pm clear <package>стирает все данные разом, удобно в автотестах. У debuggable-сборки можно зайти черезrun-asи удалить только содержимое каталогаcache; - Auto Backup: если в манифесте разрешён бэкап, после переустановки часть данных может вернуться из резервной копии, и «чистый» запуск окажется не чистым.
iOS:
- системной кнопки очистки кэша для сторонних приложений нет. Надёжный способ: удалить приложение и поставить заново из TestFlight или Xcode;
- «Сгрузить приложение» удаляет само приложение, но документы и данные оставляет, для чистого старта не подходит;
- Keychain переживает удаление приложения, поэтому токены и флаги, сохранённые там, остаются после переустановки;
- симулятор:
xcrun simctl uninstall, для полного сбросаxcrun simctl eraseили «Erase All Content and Settings».
Если в приложении есть своя кнопка очистки, проверьте, что она действительно освобождает место и не выкидывает пользователя из аккаунта без предупреждения.
Где спотыкаются
Считают, что «Очистить кэш» на Android разлогинит пользователя и сбросит настройки. Это делает только очистка хранилища, и баги первого запуска так не воспроизводятся.
Предлагают на iOS «Сгрузить приложение» как способ очистки. Данные остаются, и тест проходит на грязном состоянии.
Чистят данные перед каждой проверкой обновления. Так прячутся ошибки миграции: реальные пользователи ставят новую версию поверх старой базы и старого кэша, и этот сценарий нужно проверять отдельно.