Распределенное уведомление больше не работает в Каталине - PullRequest
2 голосов
/ 21 февраля 2020

Я передаю данные между приложением расширения Safari и приложением MacOS с помощью Центра распределенных уведомлений. Я использую DistributedNotificationCenter.default().addObserver с указанным c именем уведомления и отправляю уведомление из приложения MacOS под тем же именем DistributedNotificationCenter.default().postNotificationName

Я продолжаю получать attempt to post distributed notification 'nameofnotification' thwarted by sandboxing.

Я видел в документация apple, что

Приложения в песочнице могут отправлять уведомления, только если они не содержат словаря. Если отправляющее приложение находится в изолированной программной среде приложения, userInfo должно быть равно nil.

Информация о моем пользователе не равна nil, но это прекрасно работало в предыдущих версиях Ma c. Что мне не хватает? Это относительно новое?

Какая альтернатива для связи между расширением и приложением? Будет ли работать служба XP C?

ОБНОВЛЕНИЕ

Я внедрил службу XP C, следуя документации Apple , но когда я вызвать его из расширения safari Я получаю эту ошибку Couldn’t communicate with a helper application. Я могу без проблем вызвать ее из приложения, которое встраивает службу XP C.

Я пытался:

  • скопировать службу в расширение Contents/XPCServices
  • , добавить группу приложений и использовать let connectionXPC = SXPCConnection.init(serviceName:"XXXXXXX.com.bundlename.XPCService") вместо let connectionXPC = NSXPCConnection.init(serviceName: "com.bundlename.XPCService") где XXXXXXX - группа приложений.

Любая идея о том, как правильно использовать службу XP C из приложения расширения, или любой другой способ передачи и передачи данных между изолированным расширением и приложением.

1 Ответ

0 голосов
/ 25 февраля 2020

XP C не будет работать в этом случае. Связь с расширениями Safari нового типа должна осуществляться через подкласс SFSafariExtensionHandler.

Рекомендуется создать расширение Safari через соответствующий шаблон Xcode, все важные настройки, поля Info.plist и инфраструктура будут настроены для вас. .

Пожалуйста, ознакомьтесь с хорошими документированными подробностями на официальном Создание расширения приложения Safari

...