2014-07-11 25 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