Where is a Mac Application's NSUserDefaults Data Stored?

烂漫一生 提交于 2019-11-28 15:22:56

They can be found in more than one place:

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

and if sandboxed

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

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

(Xcode 7.3.1,macOS 10.11.6)

For Additional,if you are using App Groups

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

plist file will be here:

~/Library/Group Containers/group. groupApps/Library/Preferences/group.groupApps.plist

On Sierra, I found the data here: ~/Library/Application Support/.

One more possible location for these data comes into play when trying things out in a Playground. I was experimenting with UserDefaults in a Playground, using XCode 8.3 and Swift 3, and wanted to see the resulting plist file. After some detective work (UserDefaults files have the bundle identifier in the filename and calling Bundle.main.bundleIdentifier in a Playground gives the XCode identifier) I found to my great surprise that the UserDefaults data was added to:

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

In other words, keys and values are added to the XCode preferences file! I double-checked by coming up with very unlikely strings for the keys and they were indeed added there. I did not have the courage to try using some keys that were already in use by XCode but caution seems good here.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!