Где хранятся данные NSUserDefaults приложения Mac? - PullRequest
58 голосов
/ 02 ноября 2011

Я использую NSUserDefaults для хранения некоторых данных в моем приложении.

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"dummy string" forKey:@"lastValue"];
[prefs synchronize];

В целях тестирования мне нужно увидеть plist-файл System Preferences, где мои данные NSUserDefaults сохраняются на Mac.

Я знаю, где хранятся пользовательские настройки приложения iOS, но я не знаю, как работает приложение Mac.Где хранятся данные NSUserDefaults приложения Mac?

Ответы [ 5 ]

144 голосов
/ 28 сентября 2012

Их можно найти в нескольких местах:

~/Library/Preferences/com.example.myapp.plist
~/Library/SyncedPreferences/com.example.myapp.plist

и в песочнице

~/Library/Containers/com.example.myapp/Data/Library/Preferences/com.example.myapp.plist
~/Library/Containers/com.example.myapp/Data/Library/SyncedPreferences/com.example.myapp.plist
20 голосов
/ 02 ноября 2011

В ~/Library/Preferences/com.example.myapp.plist.

3 голосов
/ 21 июля 2016

(Xcode 7.3.1, macOS 10.11.6)

Для Дополнительно, если вы используете группы приложений

    if let prefs = NSUserDefaults(suiteName: "group.groupApps")  {
       ...
    }

plist файл будет здесь:

~ / Библиотека / Группа Контейнеров / Группа.groupApps / Library / Preferences / group.groupApps.plist

1 голос
/ 08 декабря 2016

На Сьерре я нашел данные здесь: ~/Library/Application Support/.

0 голосов
/ 06 августа 2017

Еще одно возможное место для этих данных вступает в игру при испытаниях на игровой площадке.Я экспериментировал с UserDefaults на игровой площадке, используя XCode 8.3 и Swift 3, и хотел посмотреть получившийся файл plist.После некоторой детективной работы (файлы UserDefaults имеют идентификатор пакета в имени файла и вызов Bundle.main.bundleIdentifier на игровой площадке дает идентификатор XCode), к моему большому удивлению, данные UserDefaults были добавлены в:

~/Library/Preferences/com.apple.dt.Xcode

Другими словами, ключи и значения добавляются в файл настроек XCode!Я дважды проверил, придумав очень маловероятные строки для ключей, и они действительно были добавлены туда.У меня не хватило смелости попробовать использовать некоторые ключи, которые уже использовались в XCode, но осторожность здесь кажется хорошей.

...