我的应用程序通常在iOS或iPadOS上接收来自CKQuerySubscription的CKQueryNotification,但使用具有相同捆绑包ID的MacCatalyst (从Xcode11.6生成),即使这样,它也不会接收CKQueryNotification
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)在应用程序启动时正确调用-每当CloudKit上有记录更改时,方法
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Swift.Void)不会在MacCatalyst版本上触发,而会在iOS上立即触发。
你知道为什么吗?在苹果论坛上有一个帖子,但还没有看到解决方案:https://developer.apple.com/forums/thread/125069
发布于 2020-09-08 04:11:15
对于在开发应用程序时遇到此问题的任何人,我决定无论如何都要发布应用程序,并发现在app Store版本中,在Mac上,catalyst应用程序几乎可以立即收到通知。因此,这似乎是CloudKit的调试环境错误。
发布于 2020-08-15 15:27:04
您共享的代码不足以让我们帮助您,所以我来猜猜。尝试按如下方式定义您的notificationInfo值,看看是否会有所不同。didRegisterForRemoteNotifications内部:
// This is your subscription object
let subscription = CKQuerySubscription(recordType: "Subscription", predicate: NSPredicate(format: "TRUEPREDICATE"), options: [.firesOnRecordCreation, .firesOnRecordUpdate])
// Here we customize the notification message
let info = CKSubscription.NotificationInfo()
info.shouldSendContentAvailable = true
info.desiredKeys = ["identifier", "title", "date"]
info.soundName = ""
info.alertBody = ""
info.title = ""
info.alertActionLocalizationKey = ""
// Assign the notification info to your subscription
subscription.notificationInfo = infohttps://stackoverflow.com/questions/63421613
复制相似问题