В течение короткого времени (я (думаю *, начиная с Mac OS X 10.10.2) я смог очистить свои настройки NSUserDefaults
через
defaults delete ~/Library/Preference/<my app>.plist
Но внезапно это не работает, и мои настройки кажутся сверхпостоянными. Я также вручную очистил что-либо в разделе «Сохраненные настройки» и выполнил указанную выше команду «Контейнеры» (хотя песочница была отключена для тестирования в любом случае).
Что еще может держать мои настройки? Я предполагаю, что следующая перезагрузка могла бы очистить это, но я хочу избежать перезагрузки в будущем.
PS Настройки даже пережили перезагрузку :-(
macos
default-settings
qwerty_so
источник
источник
Ответы:
Во-первых, при использовании
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
)источник
Заезд
~/Library/Containers/
.Я думаю, что приложения для песочницы (App Store) теперь должны хранить свои вещи там.
источник