在生产环境中创建CloudKit订阅

时间:2020-01-13 18:20:55

标签: ios swift push-notification cloudkit subscription

我正在尝试使用与当前用户ID匹配的自定义谓词创建CKSubscription。在开发中运行时,它可以完美运行,但在切换到生产环境时,会发生以下错误:

error saving subscription: "Error saving record subscription with id 303D72C8-A43F-4F18-8A2A-D0D9FEB0D65E to server: Cannot create or modify field \'notif_alert\' in record \'_sub_trigger_sub_51FF1A188EF28BF4241E95152E18E1FD\' in production schema

很明显,由于谓词是用户唯一的,所以我不能仅将CKSubscription从开发部署到生产。有谁知道如何在生产中为每个用户创建具有唯一谓词的预订(由于唯一的用户ID)?用于实现subscripiton的代码如下:

//Setting up profile like notifications, triggered from CloudKit
    let subscription = CKQuerySubscription(recordType: "ProfileLikes", predicate: NSPredicate(format: "toUser == %@", currentUser), options: .firesOnRecordCreation)

        let info = CKSubscription.NotificationInfo()
    info.alertBody = "You've got a new profile like. Open up to find out who ?️"
    info.shouldBadge = true
    info.soundName = "default"

    subscription.notificationInfo = info
    CKContainer.default().publicCloudDatabase.save(subscription, completionHandler: { subscription, error in
        if error == nil {
            // Subscription saved successfully
            print("subscription successful")
        } else {
            print("error saving subscription: \(error?.localizedDescription)")
        }
    })

0 个答案:

没有答案