"Не удалось связаться со вспомогательным приложением" на 10.10
Я внезапно получаю эту ошибку в 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.};
Приложение отлично работало над Mavericks. Какие-нибудь идеи, что может произойти?
(У меня даже нет подсказки, где тоже смотреть... Конечно, у меня есть WebView там, но мне еще не удалось выяснить, где срабатывает ошибка...)
Ответы
Ответ 1
Эта проблема очень вероятна из-за песочницы, как уже указывал @ingrid. Но если вы хотите распространять наши приложения через Mac App Store, вы не можете просто отключить песочницу (что не рекомендуется в любом случае). Вместо включить функцию "Исходящие подключения" .
- Нажмите на файл проекта
- Выберите цель создания приложения
- На вкладке "Возможности" добавьте "Песочницу приложений"
- Включен флажок "Исходящие соединения (клиент)"
![enter image description here]()
Ответ 2
Я тоже получаю эту проблему. Вы используете NSAttributed строку initWithHTML: метод?
Существует также известная проблема с панелями open и save, которые полагаются на вспомогательные приложения. (Это был комментарий, но я не могу оставлять комментарии!)
Ответ 3
@martn_st post - это первый шаг, но поддержка Accroding to Fabric OSX:
https://docs.fabric.io/apple/crashlytics/os-x.html
Перехват и отчетность исключений uncaught в OS X сложнее, чем в iOS. В OS X AppKit будет перехватывать исключения, бросаемые в основной поток, предотвращая сбой приложения, но также предотвращая их появление Crashlytics. Хуже того, рамки яблок не являются безопасными для всех. Это означает, что, хотя AppKit предотвратит сбой вашего приложения, он также может привести к повреждению состояния ваших процессов, часто включая AppKit. Как правило, когда исключение, связанное с взаимодействием с пользовательским интерфейсом, выбрасывается, оно предотвратит правильное использование вашего приложения с этого момента.
Вам нужно поместить следующий код в didFinishLaunchWithOption
Swift 3
UserDefaults.standard.register(defaults: ["NSApplicationCrashOnExceptions": true])
Swift pre-3
NSUserDefaults.standardUserDefaults().registerDefaults(["NSApplicationCrashOnExceptions": true])
Objective-C
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"NSApplicationCrashOnExceptions": @YES }];
Ответ 4
У меня тоже была эта ошибка, в моем случае файл .entencesments Key Sandbox был в "YES", я изменил его на "NO".
Ответ 5
Если вы используете сервис, у вас нет ui для этого, поэтому вы в {name}.entitlements
вы должны добавить этот ключ:
com.apple.security.network.server
как Boolean
и YES
для значения
и/или
com.apple.security.network.client
в качестве типа Boolean
и YES
для значения
Ответ 6
Для тех, кто получил эту проблему с расширением клавиатуры на iOS:
- Открыть настройки
- Клавиатура
- [Выберите свою клавиатуру здесь]
- Предоставить полный доступ
Ответ 7
Откройте терминал и выполните следующие две команды, я использую xcode 8
xcrun git config --global user.email [email protected]
xcrun git config --global user.name "Your Name Here"