0

您好,感谢您的宝贵时间。

我正在开发一个 iOS 应用程序,它具有内容拦截器作为其功能之一。为此,我们有一个用户可以随意启用/禁用的预定义规则列表,以及输入自定义规则的选项。

每当发生更改(启用、禁用、添加或删除)时,我都会获取所有规则并重新创建 JSON 文件,每 150K 规则一个文件(我们有多个内容阻止程序)。大多数用户只需要一个 JSON 文件。

问题

大多数时候,它运作良好。内容阻止程序重新加载,我可以在 Safari 中验证它是否正常工作。

但是,有时在调用时SFContentBlockerManager.reloadContentBlocker(withIdentifier:completionHandler:),它会返回以下错误:

Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.apple.SafariServices.ContentBlockerLoader" UserInfo={NSDebugDescription=connection to service named com.apple.SafariServices.ContentBlockerLoader}

本地化描述:Couldn’t communicate with a helper application.

找不到发生这种情况的原因。以前的一些研究表明这可能与应用程序组有关,但我验证了它们并且它们设置正确(即使因为阻止程序重新加载大部分时间都有效)。

我在生产中看到了许多这样的错误(添加了一个日志)。

谢谢您的帮助。

更新

不确定,但我认为这可能与扩展中的内存有关。当 JSON 文件大约 12mb 时,我会更频繁地收到错误。

现在,如果我限制为 10mb,我不会再收到错误(到目前为止)。

4

0 回答 0