as the title says, I'm trying to subscribe for changes using CKQuerySubscription, the subscription is correctly created (present on CK dashboard) but I'm not receiving a notification on my phone (not simulator)
Here is the code:
`func createGroup(name: String) async {
guard let userID = PersistenceManager.shared.fetchUserInfo()?.userRecordID
else { return }
loadingNewGroup = true
let group = ExpensesGroup.create(name: name, userID: userID)
await PersistenceManager.shared.context.perform {
try! PersistenceManager.shared.context.save()
}
self.selectedExpensesGroup = group
await PersistenceManager.shared.createShare(group)
await createQuerySubscription(group)
loadingNewGroup = false
sheetToShow = nil
sheetToShow = .manageShare
}
func createQuerySubscription(_ group: ExpensesGroup) async {
let privateDB = PersistenceManager.shared.ckContainer.privateCloudDatabase
let predicate = NSPredicate(value: true)
let shareSubscription = CKQuerySubscription(recordType: "cloudkit.share", predicate: predicate, subscriptionID: "\(group.id ?? "")", options: [.firesOnRecordCreation, .firesOnRecordDeletion, .firesOnRecordUpdate])
let notification = CKSubscription.NotificationInfo()
notification.shouldSendContentAvailable = true
shareSubscription.notificationInfo = notification
let operation = CKModifySubscriptionsOperation(subscriptionsToSave: [shareSubscription])
operation.modifySubscriptionsResultBlock = { result in
print(result)
}
operation.qualityOfService = .userInteractive
privateDB.add(operation)
}
`
I tried using CD_ExpensesGroup (It's the actual recordName) instead of "cloudkit.share" same result.
I put a print("notification") in appdelegate func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {