Tag: cksubscription

针对CKReference的CloudKit预订通知未按预期工作

我试图设置一个CKSubscription的logging,其中包含一个CKReference字段的字段给用户。 但是,无论何时创buildlogging,都会忽略compoundPredicate的这一部分,并且通知永远不会到来。 在CKSubscription的谓词中使用CKReference有什么不同吗? 我进入仪表板input一个新的logging下我自己的用户recordID(当在模拟器中运行另一个用户),因为我相信我读了如果logging来自设备,它将不会收到通知。 任何洞察力都非常感谢,因为我已经坚持了一个星期,并找不到任何特定于此的任何事情。 我能够得到真正的types谓词通知,所以我认为我的基本设置是好的。 在仪表板中,我看到了两个testing用户的通用订阅,但没有任何用户的具体recordID(这是否重要?): Notifications.read (equals string) Notifications.user (equals reference) 当我执行fetchAllSubscriptionsWithCompletionHandler方法时,它会在debugging器中显示当前用户的特定recordID作为CKReference。 所以我不知道为什么不行。 这是我的代码,我首先创buildCKReference,然后用它作为我的谓词: var recordIDString = CKRecordID(recordName: "_a86dac8ee05f8c6ab35746bf9663d7b8") // I normally store this string in the NSUserDefaults. let userRef = CKReference(recordID: recordIDString, action: .DeleteSelf) let predicate = NSPredicate(format: "user = %@", userRef) let predicateTwo = NSPredicate(format: "read = %@", "") // I […]

通过CKSubscription观察CKRecord删除不起作用

CKSubscription文档说: 当一个logging修改导致一个订阅触发,服务器发送推送通知给所有具有该订阅的设备, 除了原来的更改logging。 假设我有两个设备: device 1和device 2从不同的iCloud帐户login。 假设两个设备都订阅了某个loggingtypes的logging删除。 如果device 1创buildlogging,然后device 1删除它,则device 2得到通知 – 这是根据DOC,但.. 如果device 1创build一个logging,然后device 2删除它,然后device 2得到通知 – 我不认为这是根据DOC,并且它没有任何感觉, device 2删除它,所以应该通知device 1 在设备1和设备2上设置订阅 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil)) application.registerForRemoteNotifications() let defaultContainer = CKContainer.defaultContainer() let publicDatabase = defaultContainer.publicCloudDatabase publicDatabase.fetchAllSubscriptionsWithCompletionHandler({subscriptions, error in if error == nil { […]

logging更新中的CloudKit推送通知停止工作

编辑 :今天27.08.2015重新testing,它再次运作,苹果已经修复它。 我有一个应用程序在开发模式。 应用程序使用CKSubscription来获取服务器上的更改通知,为所有三个选项进行configuration:创build,更新,删除。 一切工作正常,但最近在回归testing期间,我发现应用程序没有收到logging更新通知,创build和删除通知仍然工作。 当我在仪表板上选中时,所有三个选项的设置都正确,并且应用程序注册了CKSubscription,因为它是几天前像魅力一样工作的。 我没有从CloudKit获得任何错误。 开发环境的重置没有帮助。 我已经重新testing了这个版本,我确信它正在工作,并得到了相同的结果。 任何想法可能会导致这个问题,还有什么我应该检查/尝试? 附加信息:我想在服务器端可能会出错。 在订阅CloudKit事件和处理推送通知的代码中,我没有更改任何内容,无论如何,它的工作版本也没有得到更新通知。 我正在编写的应用程序已经发布,因此更换容器是不行的。 不知道这是否会导致这个问题,只是想提一下:应用程序使用相同的容器在云中存储核心数据 – 应用程序升级的目标是将数据迁移到CloudKit并将其用作云专门存储。 令人困惑的是,一切工作都好几个星期,并没有任何明确的理由突然停止工作,可能作为加载testing的影响,增加loggingtypes… testing从头开发的应用程序:我已经写了一个简单的testing应用程序来检查接收通知。 我只能收到创buildlogging的通知。 我的代码有什么问题: import UIKit import CloudKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? let container = CKContainer.defaultContainer() func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let settings = UIUserNotificationSettings(forTypes: .Alert, categories: nil) application.registerUserNotificationSettings(settings) […]