Swift的User Defaults报错:Failed to read values in CFPrefsPlistSource解决方法
文章摘要
HeoGPT
这篇文章介绍了在Swift中使用User Defaults时出现的报错“Failed to read values in CFPrefsPlistSource”的解决方法。作者发现问题是由于appgroup地址填写不规范导致的,正确的格式应该是“nnnnnnnnnn.group.com.***.***”。同时,对于老用户,还需要迁移User Defaults的group地址中的数据。
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
投诉近期每次运行都发现报错,找了好久找到了方法。不过根据这个方法改完之后还需要自己迁移一下User Defaults的group地址中的数据。否则老用户打开直接就没数据。
错误提示
1 | [User Defaults] Failed to read values in CFPrefsPlistSource<0x1700f1280> (Domain: group.x.p.t.o, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null)): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd |
解决方法
在我们的appgroup地址填写规范时,只填写了group.com.***.***
这种形式,但是这种形式我们其实是不允许使用的。我们正确的格式应该是teamid.group.com.***.***
所以只要更改自己appgroup的变量地址即可消除这个报错。
查询自己的teamid
如果你不知道你的teamid,可以登录你的apple开发者后台,点击会员资格详细信息。
里面就会告诉你的团队id是多少。
英文原文
Hi, everyone!
I have also encountered the same problem. And I finally figured it out!
Change from
[[NSUserDefaults alloc] initWithSuiteName:@”group.com..“];
to
[[NSUserDefaults alloc] initWithSuiteName:@”nnnnnnnnnn.group.com..“];
nnnnnnnnn is your team number, the one which you using to sign your code.
Tested under Xcode 8 GM and iOS 10 GM, and worked!
参考文档
- 感谢你赐予我前进的力量
打赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 张洪Heo
评论
生成评论
匿名评论
违规举报
✅ 你无需删除空行,直接评论以获取最佳展示效果