Удаление пользовательских настроек по умолчанию в 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) теперь должны хранить свои вещи там.

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