2014-07-11 28 views
1

在我的主要应用程序包中,我支持包括XPC服务。应用程序是沙盒,一切工作都很好,除了当我从XPC服务应用程序调用[[NSUserDefaults standardUserDefault] setObject:forKey:]方法和比- synchronize方法时,不会写入首选项,并且下次需要时不会检索数据。用户偏好不从XPC服务保存

我在Apple的文档中没有发现与此问题相关的任何内容,只是沙盒应用程序无法访问其他应用程序的首选项。没关系,我不需要它。 XPC服务在〜/ Library/Containers中有它自己的容器,我应该能够存储它自己的数据。但显然,出于某种原因并非如此。

我可能错过了一些东西,但无法找到。为了完成这项工作,是否有什么特别的事情需要完成(添加一些权利)?

感谢您的任何提示。

回答

1

我相信你将需要使用集团集装箱分享喜好和我已经实现了类似的东西使用RMSharedPreferences(其常规首应用countpart非UI LSUIElement应用程序共享偏好)。

+0

添加授权com.apple.security.application-groups解决了问题。不过,我仍然想知道为什么助手应用程序在禁用分组时无法写入自己的容器。我甚至不需要在主应用程序和XPC服务之间共享首选项... – Matthes

+0

@Matthes我不确定使用XPC恐怕因为我从未使用它。 – trojanfoe