Sandboxed应用程序在10.8中正常运行但在10.9中似乎是用户默认值。 plist根本没有保存。 plist的位置是:
~/Library/Containers/com.example.myapp/Data/Library/Preferences/com.example.myapp.plist
如果我删除它,它将不会再次创建。在10.8,这是有效的。
有没有人见过这个或有人可以提出解决方案吗?
答案 0 :(得分:9)
问题通过重启解决了,远远不够。 首选项保存正确,它可以正常工作,直到我再次删除应用程序容器文件夹。然后需要重新启动以解决此问题。
答案 1 :(得分:7)
我解决这个问题的方法是在更改.plist文件后终止'cfprefsd'守护程序进程:
ps auwx | grep cfprefsd | grep -v grep | awk'{print $ 2}'| xargs sudo kill -2
在下次访问.plist文件后,守护进程将重新启动,然后将为已更改的密钥设置新值。
不幸的是,这种解决办法是必要的,但至少它可靠地运作。
答案 2 :(得分:1)
我昨晚遇到了这个问题(我还在开发我的应用程序)。我通过删除app容器文件夹(将整个~/Library/Containers/com.domain.appname
移动到Finder中的垃圾箱)并重新运行应用程序来修复它。
我首先重新启动,因为我看到有一些与我的应用相关的LSShared
文件,在重启之前不会从垃圾箱中清空。
我只能想象这是小牛队(转基因种子)的间歇性错误。
编辑关于错误的评论可能不是真的;根据{{3}},看起来.plist
文件正在“出路”。然而,在一天结束时,我的应用程序(和OP)停止工作,因此无法正常工作。