应用程序组刚刚在我的邮件过滤器扩展和主机应用程序之间工作

时间:2017-12-25 11:57:05

标签: ios

我已经为我的其他应用程序(在今天的扩展程序和主机应用程序之间)运行了这个,但是,对于使用Xcode 9.1创建的全新应用程序,我看到了奇怪的错误:

2017-12-25 17:16:42.077247+0530 Controller[851:11684] [User Defaults] Couldn't read values in CFPrefsPlistSource<0x10470c970> (Domain: group.com.judepereira, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd
2017-12-25 17:16:42.079711+0530 Controller[851:11707] [User Defaults] Couldn't write value for key idc in CFPrefsPlistSource<0x10470c620> (Domain: group.com.judepereira, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access, switching to read-only
2017-12-25 17:16:42.081354+0530 Controller[851:11707] [User Defaults] Couldn't write value for key rules in CFPrefsPlistSource<0x10470c620> (Domain: group.com.judepereira, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): Operation not allowed, switching to read-only

我已按照指定的herehere指南进行操作。而且,更奇怪的是它在主机应用程序中完美运行。仅当我的邮件过滤器扩展尝试更新此应用程序组的用户默认值时,才会看到这些随机错误。

以下是我如何更新它:

NSUserDefaults *defaults = [[NSUserDefaults alloc]
                            initWithSuiteName:@"group.com.judepereira"];

NSLog(@"idc=%@", [defaults objectForKey:@"idc"]);
[defaults setObject:@"judepereira" forKey:@"idc"];

此外,我已阅读herehere有关设备重启的解决方法,以及这些错误消息只是一些虚假警告。

1 个答案:

答案 0 :(得分:1)

经过进一步调查后,此特定扩展程序不允许使用 苹果的回答。

  

出于隐私原因,系统会处理与您的所有通信   关联服务器;您的邮件过滤器应用扩展程序无法访问   直接联网。

     

出于隐私原因,您的应用扩展程序无法将数据写入   与包含的应用共享的容器。

     

为此,您不应将数据写入共享容器   特定类型的应用程序扩展。通常,您可以使用App   具有NSUserDefaults的组可在您的应用之间交流信息   及其扩展名。