Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift MacCatalyst生成时未收到CKQueryNotification_Swift_Xcode_Cloudkit_Mac Catalyst - Fatal编程技术网

Swift MacCatalyst生成时未收到CKQueryNotification

Swift MacCatalyst生成时未收到CKQueryNotification,swift,xcode,cloudkit,mac-catalyst,Swift,Xcode,Cloudkit,Mac Catalyst,我的应用程序通常在iOS或iPadOS上从CKQuerySubscription接收CKQueryNotification,但使用具有相同捆绑ID(由Xcode 11.6生成)的MacCatalyst时,它从不接收CKQueryNotification即使 func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) 在应用程序

我的应用程序通常在iOS或iPadOS上从
CKQuerySubscription
接收
CKQueryNotification
,但使用具有相同捆绑ID(由Xcode 11.6生成)的MacCatalyst时,它从不接收
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上会立即启动


你知道为什么吗?苹果论坛上有一个帖子,但还没有找到解决方案:

你没有分享足够的代码让我们帮助你,所以我猜一下。尝试按如下方式定义notificationInfo值,看看这是否会产生影响。内部DIDregisterForemotentifications:

    // 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 = info

对于在开发应用程序时遇到此问题的任何人,我决定无论如何发布应用程序,并发现在应用程序商店版本中,在Mac上,catalyst应用程序几乎可以立即收到通知。因此,这似乎是CloudKit的调试环境错误。

很抱歉,我已经在这么做了,db.fetchAllSubscriptions会正确返回订阅