8

В течение короткого времени (я (думаю *, начиная с Mac OS X 10.10.2) я смог очистить свои настройки в NSUserDefaults через

defaults delete ~/Library/Preference/<my app>.plist

Но внезапно это не работает, и мои настройки кажутся сверхпостоянными. Я также вручную очистил что-либо в «Сохраненных настройках» и выполнил указанную выше команду для «Контейнеров» (хотя песочница была отключена для тестирования в любом случае).

Что еще может держать мои настройки? Я предполагаю, что следующая перезагрузка могла бы очистить это, но я хочу избежать перезагрузки в будущем.

PS Настройки даже пережили перезагрузку :-(

2 ответа2

16

Во-первых, при использовании defaults по умолчанию вы должны .plist из имени файла - он всегда добавляет это, поэтому, если вы также укажете его, defaults попытаются удалить «<мое приложение> .plist.plist».

Во-вторых, я думаю, что когда вы указываете полный путь к файлу настроек, вы cfprefsd , который (помимо прочего) кэширует недавно использованные настройки. Вы должны либо просто использовать defaults delete <my app> , либо запустить killall cfprefsd перед удалением настроек (но после выхода из приложения).

Обратите внимание, что если приложение помещено в «песочницу», то по defaults это неправильный способ удаления настроек - просто убейте cfprefsd , а затем используйте rm чтобы удалить весь контейнер песочницы приложения (rm ~/Library/Containers/<my app>) или только его файл настроек (rm ~/Library/Containers/<my app>/Data/Library/Preferences/<my app>.plist)

1

Проверьте в ~/Library/Containers/ .

Я думаю, что приложения для песочницы (App Store) теперь должны хранить свои вещи там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .