"无法与帮助应用程序通信"在10.10

时间:2014-11-09 16:54:27

标签: objective-c macos cocoa osx-yosemite

我突然在Yosemite上犯了这个错误:

***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.}; 

该应用程序在小牛队的表现非常出色。可能会发生什么想法?

(我甚至不知道在哪里看......当然,我有一个WebView,但我还没有设法找出错误触发的位置...... )

7 个答案:

答案 0 :(得分:38)

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

  • 点击您的项目文件
  • 选择应用的构建目标
  • 关于'功能'标签扩展' App Sandbox'
  • 启用了“传出连接(客户端)”#39;复选框

enter image description here

答案 1 :(得分:2)

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

打开和保存面板也存在一个已知问题,它依赖于辅助应用程序。 (这可能是一个评论,但我还不能留下评论!)

答案 2 :(得分:1)

@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

Swift 3

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

Swift pre-3

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

目标C

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

答案 3 :(得分:0)

我也有这个错误,在我的情况下,文件.entitlements关键App Sandbox在" YES",我把它改为" NO"。

答案 4 :(得分:0)

如果您正在使用服务,那么您没有ui,所以您应该在{name}.entitlements中添加此密钥: com.apple.security.network.serverBoolean类型,YES为值 和/或 com.apple.security.network.clientBoolean类型,YES为值

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

xcrun git config --global user.email you@yourdomain.com

xcrun git config --global user.name "Your Name Here"