2

我有一个应用程序,我现在正在沙盒中。我使用来自不同流程的可访问性 API 进行自动化验收测试。在沙盒之前,测试套件使用 CFPreferencesSetValue 和朋友为应用程序设置某些默认值。

沙箱化后,默认值是从 ~/Library/Containers/BUNDLEID/Data/Library/Preferences 读取的,但据我所知,CFPreferencesSetValue 函数仅写入 ~/Library/Preferences。

有没有办法以编程方式将首选项写入沙盒首选项,而无需例如硬编码位置并直接修改 plist,或使用默认命令行实用程序。

4

2 回答 2

1

一种解决方案是向您的沙盒应用程序添加“应用程序组”,从而允许该组的其他应用程序共享其首选项,请参阅:Reading NSUserDefaults from helper app in the sandbox

于 2013-12-20T13:53:36.633 回答
1

实际上,有一种更好的方法,请在此处查看我自己的问题的答案:OS X 的默认命令如何访问沙盒应用程序的首选项?

诀窍是使用沙盒容器中首选项文件的完整路径(减去“.plist”扩展名)作为应用程序 ID。

于 2013-12-21T13:18:29.080 回答