Mac应用程序的NSUserDefaults数据在哪里存储?

我正在使用NSUserDefaults在我的应用程序中存储一些数据。

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

出于testing目的,我需要看到我的NSUserDefaults数据保存在Mac上的系统首选项plist文件。

我知道iOS应用程序用户默认存储在哪里,但我不知道有关mac应用程序。 Mac应用程序的NSUserDefaults数据在哪里存储?

他们可以在多个地方find:

 ~/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 

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

(Xcode 7.3.1,macOS 10.11.6)

另外,如果您正在使用应用程序组

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

plist文件将在这里:

〜/ Library / Group Containers / group。 groupApps /库/首选项/ group.groupApps.plist

在Sierra上,我find了这里的数据: ~/Library/Application Support/

在游乐场试玩时,这些数据还有一个可能的位置。 我正在使用XCode 8.3和Swift 3在Playground上进行UserDefaults的试验,并希望看到最后的plist文件。 经过一些侦探工作(UserDefaults文件在文件名中具有包标识符,并且在Playground中调用Bundle.main.bundleIdentifier给出XCode标识符)之后,我发现我非常惊讶的是UserDefaults数据被添加到:

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

换句话说,键和值被添加到XCode首选项文件! 我仔细检查了钥匙的非常不可能的string,他们确实添加在那里。 我没有勇气尝试使用一些已被XCode使用的密钥,但谨慎看起来不错。