Мы храним файл конфигурации xml, который содержит несколько пар ключ-значение в UserDefualts. Размер .plist после сохранения данных в файле USerDefualts составляет от 5 до 50 МБ в зависимости от файла конфигурации пользователя.
Недавно на одном из наших бета-устройств мы обнаружили, что папка настроек приложения имеет размер 5 ГБ, что в 500 раз больше, чем размер приложения.
Я загрузил приложение .xcappdata для бета-версии и обнаружил, что папка
AppData/Library/Preferences is 4.98GB
Мы понятия не имеем, почему эта папка такая огромная.
Внутри этой папки находится 800 файлов с именем в формате
(bundle-identifer).plist.1ESwPpG
1ESwPpG
- это случайная строка в конце файлов.
И размер каждого файла показывает 0 байт.
В этой папке есть еще два дополнительных файла.
Один - это файл приложения .plist
(35 МБ), а другой - com.apple.EmojiCache.plist
(4 КБ).
Почему размер папки превышает 4,5 ГБ?
Я могу удалить приложение и переустановить его, что решит проблему. Нам было бы полезно узнать причину проблемы.
Я не смог найти многого из https://forums.developer.apple.com/thread/69830.
и Документы и данные приложения iOS становятся огромными
Примечание: Это приложение на бета-версии не удалялось последние 2-3 месяца. Приложение на устройстве обновляется с каждой бета-сборкой.
Примечание: Удаление этих файлов действительно уменьшает размер папки, но при просмотре в окне инспектора файлов файл показывает 0 байтов. Также файл ничего не показывает при открытии любым текстовым редактором.
Я вижу, что файл .plist данных userdefault размером 35 МБ многократно дублируется, что увеличивает размер папки.
Мне интересно, когда именно это произойдет.
вау, этот комментарий очень полезен, теперь я вижу, какой файл имеет больший размер.
@TomHarrington, похоже, все мои данные, опубликованные в USerDefualts, многократно дублируются в этих файлах.
К сожалению, я не совсем понимаю, почему это происходит и что это значит.
Вы не должны хранить данные приложения в UserDefaults. Используйте его только для хранения небольших настроек. Данные должны храниться в другом месте.
@rmaddy, вы тоже не предлагаете хранить его в отдельном .plist?
Это, безусловно, один из вариантов. Размер файла plist UserDefaults не должен превышать нескольких килобайт, и уж тем более десятков мегабайт.
В терминале может быть полезно попробовать
ls -l@
в папке, чтобы проверить данные в расширенных атрибутах.