2013-02-08 177 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) –

回答