【问题标题】:"Couldn’t communicate with a helper application" on 10.1010.10 上的“无法与帮助应用程序通信”
【发布时间】:2015-01-05 23:31:53
【问题描述】:

我突然在优胜美地遇到这个错误:

***storageTaskManagerExistsWithIdentifier:withIdentifier failed: 
Error Domain=NSCocoaErrorDomain 
Code=4099 "Couldn’t communicate with a helper application." 
(The connection to service named com.apple.nsurlstorage-cache was invalidated.) 

UserInfo=0x6000000621c0 
{NSDebugDescription=The connection to service named com.apple.nsurlstorage-cache was invalidated.}; 

该应用在 Mavericks 上运行良好。任何想法可能会发生什么?

(我什至不知道在哪里看...当然,我在那里有一个 WebView,但我还没有设法弄清楚错误是在哪里触发的...)

【问题讨论】:

  • NSCocoaErrorDomain 中的错误代码 4099 表示 NSXPCConnectionInvalid。它在 FoundationErrors.h 中定义

标签: objective-c macos cocoa osx-yosemite


【解决方案1】:

我也遇到了这个问题。你在使用 NSAttributed 字符串 initWithHTML: 方法吗?

依赖于帮助应用程序的打开和保存面板也存在一个已知问题。 (这本来是一条评论,但我还不能离开 cmets!)

【讨论】:

  • 嗯,我很确定我让错误消失了。不,我没有使用NSAttributedString。我所做的是将loadRequest: 放入窗口的mainFrame,但后来我发现要加载的html 是空白的。当我使用NSURLRequest 修复该错误时,我提到的错误消失了...
【解决方案2】:

我也遇到了这个错误,在我的情况下,文件 .entitlements 关键应用沙盒为“是”,我将其更改为“否”。

【讨论】:

  • 不是最好的解决方案。
【解决方案3】:

正如@ingrid 已经指出的那样,这个问题很可能是由于沙盒造成的。但是,如果您想通过 Mac App Store 分发我们的应用程序,您不能只关闭沙盒(无论如何都不推荐)。而是启用“传出连接”功能

  • 点击你的项目文件
  • 选择应用的构建目标
  • 在“功能”选项卡上扩展“应用沙盒”
  • 启用“传出连接(客户端)”复选框

【讨论】:

  • 您为我节省了几天的精力。非常感谢!
  • 为我工作。可能救了我几天!谢谢。
  • 大家好。我没有应用沙盒功能。有人知道为什么吗?
【解决方案4】:

如果您使用的是服务,则没有 ui,因此您应该在 {name}.entitlements 中添加此键: com.apple.security.network.serverBoolean 类型,YES 为值 和/或 com.apple.security.network.clientBoolean 类型,YES 为值

【讨论】:

    【解决方案5】:

    对于那些在 iOS 上遇到键盘扩展问题的人:

    1. 打开设置
    2. 键盘
    3. [在此处选择您的键盘]
    4. 授予完全访问权限

    【讨论】:

      【解决方案6】:

      @martn_st post 是第一步,但根据 Fabric OSX 支持: https://docs.fabric.io/apple/crashlytics/os-x.html

      在 OS X 上拦截和报告未捕获的异常比在 iOS 上更复杂。在 OS X 上,AppKit 将捕获主线程上抛出的异常,防止应用程序崩溃,同时也防止 Crashlytics 报告它们。更糟糕的是,Apple 的框架并非异常安全。这意味着虽然 AppKit 可以防止您的应用程序崩溃,但它也可能会破坏您的进程状态,通常包括 AppKit 本身。通常,一旦引发涉及 UI 交互的异常,它将阻止您的应用从那一刻起正常工作。

      您需要将以下代码放入didFinishLaunchWithOption

      斯威夫特 3

      UserDefaults.standard.register(defaults: ["NSApplicationCrashOnExceptions": true])

      Swift pre-3

      NSUserDefaults.standardUserDefaults().registerDefaults(["NSApplicationCrashOnExceptions": true])

      目标-C

      [[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"NSApplicationCrashOnExceptions": @YES }];

      【讨论】:

        【解决方案7】:

        打开终端并执行以下两个命令,我使用的是 xcode 8

        xcrun git config --global user.email you@yourdomain.com
        
        xcrun git config --global user.name "Your Name Here"
        

        【讨论】:

          猜你喜欢
          • 2018-03-31
          • 2018-03-18
          • 1970-01-01
          • 2019-06-24
          • 1970-01-01
          • 1970-01-01
          • 2016-05-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多