未使用macOS通知服务扩展

未使用macOS通知服务扩展,macos,notifications,unnotificationserviceextension,Macos,Notifications,Unnotificationserviceextension,我的macOS应用程序有一个通知服务扩展 以下是该扩展的代码: import UserNotifications class NotificationService: UNNotificationServiceExtension { var contentHandler: ((UNNotificationContent) -> Void)? var bestAttemptContent: UNMutableNotificationContent? overri

我的macOS应用程序有一个通知服务扩展

以下是该扩展的代码:

import UserNotifications

class NotificationService: UNNotificationServiceExtension {

    var contentHandler: ((UNNotificationContent) -> Void)?
    var bestAttemptContent: UNMutableNotificationContent?

    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        print("Extension received notification!")

        self.contentHandler = contentHandler
        bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

        bestAttemptContent?.title = "Title modified!"
    }

    override func serviceExtensionTimeWillExpire() {
        // Called just before the extension will be terminated by the system.
        // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
        if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
            contentHandler(bestAttemptContent)
        }
    }
}
我的有效载荷也很简单:

{"aps": {
        "alert":{"title":"Test1", "subtitle":"Test2", "body":"Test3"},
        "sound":"default",
        "mutable-content":1,
        "category":"news"
    }
}
但是,在收到通知后,标题不会被修改。我还尝试了通过PID或名称附加到进程的
菜单,我无法附加到此扩展,这意味着它没有运行

还有很多关于iOS的问题,我尝试了解决方案,但不幸的是,它们不起作用


有什么想法吗?

我对Mac Catalyst也有同样的问题(iOS通知服务扩展工作正常,但不适用于Mac OS)。(Xcode 11.1) 对于Mac OS X(Mac Catalyst)(如果您已经具有“应用程序沙盒”功能,请跳到步骤5)

  • 选择扩展的目标
  • 然后在顶部选择选项卡“签名和功能”
  • 然后单击“功能”+
  • 添加“应用程序沙盒”功能
  • 确保选中(启用)了传入连接(服务器)
  • 请参阅所附图片。

    1-另一种不运行应用程序扩展的可能性(或者看起来它没有运行)是发生了一些事情,扩展失败/崩溃,操作系统未做任何更改就发送了推送通知。(尝试使用Xcode调试扩展。)

    2-尝试清理Xcode中的目标数据和派生数据

    3-确保您的扩展权限具有所有支持的Mac(Mac Catalyst),而不仅仅是支持的iOS密钥(如果用于Mac Catalyst)


    4-(Mac Catalyst)尝试在iOS上运行扩展(如果在Mac上没有,则意味着某些配置/代码崩溃不应出现在您的Mac目标中),再次调试将有助于您使用Catalyst app/MacOS Catalina?使用反向域表示法作为标识符。在Mac电脑上,这是非常必要的,否则你会有奇怪的行为,你会发现任何解决方案。我也无法让通知服务工作。我正在用macOS 10.15开发一个cocoa应用程序。第5点是错误的,将导致您的应用程序被拒绝。推送通知和通知服务扩展不需要传入连接即可工作。