Данные NSUserDefualts многократно дублируются в папке Preferences

Мы храним файл конфигурации 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 МБ многократно дублируется, что увеличивает размер папки.

Мне интересно, когда именно это произойдет.

В терминале может быть полезно попробовать ls -l@ в папке, чтобы проверить данные в расширенных атрибутах.

Tom Harrington 01.05.2018 19:35

вау, этот комментарий очень полезен, теперь я вижу, какой файл имеет больший размер.

Teja Nandamuri 01.05.2018 19:40

@TomHarrington, похоже, все мои данные, опубликованные в USerDefualts, многократно дублируются в этих файлах.

Teja Nandamuri 01.05.2018 19:42

К сожалению, я не совсем понимаю, почему это происходит и что это значит.

Tom Harrington 01.05.2018 19:44

Вы не должны хранить данные приложения в UserDefaults. Используйте его только для хранения небольших настроек. Данные должны храниться в другом месте.

rmaddy 01.05.2018 20:15

@rmaddy, вы тоже не предлагаете хранить его в отдельном .plist?

Teja Nandamuri 01.05.2018 20:22

Это, безусловно, один из вариантов. Размер файла plist UserDefaults не должен превышать нескольких килобайт, и уж тем более десятков мегабайт.

rmaddy 01.05.2018 20:25
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
66
0

Другие вопросы по теме