2013-02-08 134 views
2

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

沙箱化后,默认值从〜/ Library/Containers/BUNDLEID/Data/Library/Preferences中读取,但CFPreferencesSetValue函数只能写入〜/ Library/Preferences。

有没有一种方法可以在没有编程的情况下以编程方式将首选项写入沙盒首选项?硬编码位置并直接修改plist,或使用默认命令行实用程序。

+0

我有同样的问题。由于“defaults”命令可以访问沙箱化的首选项,所以它必须是可能的。 10.9中的“defaults read com.apple.Maps”。 –

+0

其实,我甚至无法从我的非沙盒应用程序中读取沙箱的pref值。例如,CFArrayRef prefs = CFPreferencesCopyKeyList(CFSTR(“com.apple.Maps”),kCFPreferencesCurrentUser,kCFPreferencesAnyHost)不会返回任何数据,但默认命令会执行此操作。 (尝试10.9.1) –

回答