Где хранятся данные NSUserDefaults приложения Mac?
Я использую NSUserDefaults для хранения некоторых данных в моем приложении.
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"dummy string" forKey:@"lastValue"];
[prefs synchronize];
для целей тестирования мне нужно увидеть файл plist системных настроек, где мои данные NSUserDefaults сохраняются на Mac.
Я знаю, где хранятся значения по умолчанию пользователя приложения iOS, но я не знаю о приложении mac. Где хранятся данные NSUserDefaults приложения Mac?
5 ответов:
их можно найти в нескольких местах:
~/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
(Xcode 7.3.1,macOS 10.11.6)
для дополнительного, если вы используете группы приложений
if let prefs = NSUserDefaults(suiteName: "group.groupApps") { ... }
plist файл будет здесь:
~ / библиотека / группа контейнеров / группа. группа / библиотека/предпочтения / группа.группа А.файл plist
еще одно возможное место для этих данных вступает в игру при попытке вещи на детской площадке. Я экспериментировал с UserDefaults на игровой площадке, используя XCode 8.3 и Swift 3, и хотел увидеть полученный файл plist. После некоторой детективной работы (файлы UserDefaults имеют идентификатор пакета в имени файла и вызывающий пакет.главный.bundleIdentifier на игровой площадке дает идентификатор XCode) я обнаружил, к моему большому удивлению, что данные UserDefaults были добавлены к:
~/Library/Preferences/com.apple.dt.Xcode
другими словами, ключи и значения добавляются в файл настроек XCode! Я дважды проверил, придумав очень маловероятные строки для ключей, и они действительно были добавлены туда. У меня не было смелости попробовать использовать некоторые ключи, которые уже использовались XCode, но осторожность здесь кажется хорошей.