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