如何清除Mac应用程序的Xcode构建中的UserDefaults?

15

我正试图确保我的首次运行代码能够正常工作,因此我想清除由UserDefaults.standard.set调用创建的偏好设置文件。它位于哪里?或者是否至少有一种方法可以清除它(而不是将其写入我的应用程序中)?

运行Product > Clean无法清除默认值。

我已经查看了DerivedData、~/Library/Preferences和/Library/Preferences,但没有找到我要找的内容。

2个回答

17
如果应用程序被沙箱化,则首选项位于

~/Library/Containers/[bundle-identifier]/Data/Library/Preferences

如果没有进行沙盒隔离,偏好设置将位于通常的位置。

~/Library/Preferences

1
不确定这是否是 Big Sur 的更改,但我发现在删除属性列表后,我还必须另外终止 cfprefsd 进程。另一种方法是使用 Andrew 的方法,但这似乎并不会删除属性列表,而是将其清空。 - Samuel-IH
对于在Catalina下运行的MacOS应用程序,首选项位于名为[bundle-identifier].plist的用户主文件夹中的隐藏Library / Preferences文件夹中。但是,重命名此文件不会阻止应用程序使用其中的值。似乎首选项值被缓存并且即使用户注销并再次登录也会持久存在。重新启动可以清除它。杀死cprefsd是否具有与重新启动相同的效果? - SimonKravis

17

你可以在终端中使用 defaults 命令。

$ defaults delete com.bundle.identifier

如果您不想删除整个应用程序默认属性列表,也可以按键删除默认值中的任何值。

$ defaults delete com.bundle.identifier kSomeKey

2
这个命令似乎也清除了缓存,比重新启动要简单得多。 - SimonKravis
defaults 不适用于沙盒化的应用程序。有关该情况,请参阅下面的答案。 - brotskydotcom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接