No recibir notifications Push de suscripciones a CloudKit

No recibo Notificaciones Push que espero de CloudKit suscripciones de CloudKit .

Esto es lo que he hecho hasta ahora:

  • CloudKit capacidades de CloudKit y notifications remotas.
  • Creado un tipo de logging 'Prueba' utilizando el tablero de instrumentos de CloudKit.
  • Crea una suscripción para el tipo de logging apropiado (Prueba), que puedo ver en el tablero de CloudKit.
  • Use un dispositivo físico para probar, que haya iCloud en iCloud y esté conectado a Internet.
  • Configura el delegado de la aplicación para recibir notifications.
  • Registros insertados / actualizados / eliminados manualmente a través del portal de CloudKit .

Desafortunadamente, nunca recibí notifications push alguna vez. El código involucrado se muestra a continuación. Literalmente, este es el único código en un nuevo proyecto en blanco.

  // MARK: - SUBSCRIPTIONS func subscribeToRecordChangesWithRecordType (recordType:String, database:CKDatabase) { let pnetworkingicate = NSPnetworkingicate(value: true) let subscription = CKSubscription(recordType: recordType, pnetworkingicate: pnetworkingicate, options: CKSubscriptionOptions.FiresOnRecordCreation|CKSubscriptionOptions.FiresOnRecordDeletion|CKSubscriptionOptions.FiresOnRecordUpdate) database.saveSubscription(subscription, completionHandler: { (savedSubscription, error) -> Void in if let _error = error { NSLog("ERROR saving '%@' subscription %@",recordType, _error) } else { NSLog("SUCCESS creating '%@' subscription: %@", recordType, savedSubscription) } }) } func createSubscriptions () { let privateDB = CKContainer.defaultContainer().privateCloudDatabase let publicDB = CKContainer.defaultContainer().publicCloudDatabase // NOTE: create a Record Type called 'Test' in the CloudKit dashboard self.subscribeToRecordChangesWithRecordType("Test", database: privateDB) self.subscribeToRecordChangesWithRecordType("Test", database: publicDB) } // MARK: - PUSH NOTIFICATIONS func registerForPushNotifications (application: UIApplication) { self.createSubscriptions() let settings = UIUserNotificationSettings(forTypes: .Alert, categories: nil) application.registerUserNotificationSettings(settings) application.registerForRemoteNotifications() } func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { NSLog("Registenetworking for Push Notifications with token: %@", deviceToken); } func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) { NSLog("FAILED to register for Push Notifications. %@", error) } func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { NSLog("RECEIVED Push Notification") NSNotificationCenter.defaultCenter().postNotificationName("PushNotificationReceived", object: userInfo) } func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { NSLog("RECEIVED LOCAL Push Notification") } func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { NSLog("RECEIVED Push Notification with fetchCompletionHandler") NSNotificationCenter.defaultCenter().postNotificationName("PushNotificationReceived", object: userInfo) } func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { self.registerForPushNotifications(application) return true } 

Gracias de antemano por cualquier consejo o sugerencia. Espero que esto no sea un error y que estoy haciendo algo mal aquí … ¡debería "simplemente funcionar"!

Aclamaciones

Asegurarse

  1. Ha habilitado la Notificación Push además de CloudKit (y el Modo en segundo plano si es necesario) en la pestaña Capacidades de la aplicación. Y si es necesario, busque los certificates push (uno para Dev, uno para producción) desde el Portal del desarrollador, descárgalos e instálelos (haciendo doble clic sobre ellos);

  2. Estás probando la aplicación en un dispositivo. Apple no empuja al simulador.