Mac 上未收到自定义记录区的 CloudKit 推送通知

Not receiving CloudKit push notifications for Custom Record Zone on the Mac

我设置了自定义区域订阅以从我的自定义记录区域接收(静默)推送通知。在我的 iOS 设备上一切正常,但我无法在我的 Mac.

上收到通知

要注册通知,我在 applicationDidFinishLaunching 中注册通知类型:

[[NSApplication sharedApplication] registerForRemoteNotificationTypes:NSRemoteNotificationTypeNone];

(试过其他类型也一样)

application:didRegisterForRemoteNotificationsWithDeviceToken:

然后使用有效令牌调用。一切似乎都很好,但是当自定义区域注册发生变化时,我没有收到任何通知

application:didReceiveRemoteNotification:

未调用。我还尝试将警报正文设置为空字符串,如下所示:

CKNotificationInfo *info = [[CKNotificationInfo alloc] init];
info.alertBody = @"";
info.shouldSendContentAvailable = YES;

但是也没用。当我将一个字符串设置为警报正文(并注册适当的通知类型)时,我还会在右上角收到该正文的通知,但 application:didReceiveRemoteNotification: 未被调用。

希望你能帮助我。谢谢!

只需从其中一个共享链接中提取正确的解决方案:如果您将 CKNotificationInfo 用于警报,则不会在 Mac 上调用 didReceiveRemoteNotification,除非您将 CKNotificationInfo.soundName 设置为空字符串!这看起来像是 OS X(目前为 10.10 和 10.11)中的错误,但可以通过这个简单的更改解决。

我认为它已通过 macOS Sierra 修复。现在为我工作。

编辑: 哇哦:刚刚注意到我(!)在 1.5 年前问过这个问题。 :)