iphone notifications ios8 cloudkit cksubscription

iphone - ¿Cómo hacer que las notificaciones remotas funcionen con las suscripciones de CloudKit?



notifications ios8 (1)

registerForRemoteNotificationTypes: tipos NS_DEPRECATED_IOS (3_0, 8_0, "Utilice registerForRemoteNotifications y registerUserNotificationSettings: en su lugar");

// Devuelve los tipos habilitados, también teniendo en cuenta cualquier configuración de todo el sistema; No se relaciona con la conectividad.

enabledRemoteNotificationTypes NS_DEPRECATED_IOS (3_0, 8_0, "Utilice - [UIApplication isRegisteredForRemoteNotifications], o - [UIApplication currentUserNotificationSettings] para recuperar la configuración remota de notificaciones de usuarios y notificaciones habilitadas por el usuario");

Que desde iOS8 se desapruebe no es causa, probablemente lo será.

Hasta ahora no he podido hacer suscripciones para trabajar. (recibir una notificación de inserción en mi dispositivo, las suscripciones parecen haberse creado correctamente)

He estado jugando con [CloudKitAtlas] [1]. Hice lo que se dice en el archivo Léame para ese proyecto:

Requerimientos

Construir

  • iOS 8.0 SDK y Xcode 6
  • Habilitar el derecho de CloudKit en iCloud (desde Capacidades)
  • Cambie el nombre de su contenedor para aprovisionar un contenedor en su cuenta de desarrollador

Puedo iniciar la aplicación, se registra correctamente para notificaciones remotas:

2014-06-09 11: 15: 17.712 CloudKitAtlas [841: 220562] Registrado para notificaciones Push con token:

También puedo crear registros, consultarlos y suscribirme:

2014-06-09 11: 15: 21.966 CloudKitAtlas [841: 220934] Suscrito al artículo

Y si voy al panel veo varias suscripciones creadas. Pero luego cuando creo un nuevo registro no pasa nada, la devolución de llamada:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)info

Nunca se ejecuta ( Nota : estoy ejecutando la aplicación en un iPhone 5S, no en el simulador)

Estoy usando una firma de depuración con ID de paquete explícito (sin comodines) y para este ID de aplicación también creé los certificados de notificaciones push correspondientes, aunque los descargué ya que no tengo nada que ver con esos archivos.

  1. ¿Me estoy olvidando de hacer algo?
  2. ¿No lo estoy probando correctamente?
  3. ¿Alguien logra obtener notificaciones remotas en su dispositivo activadas por una suscripción?

Actualización 15/06/14 Aparentemente es un error en el lado de la manzana, esperemos un par de semanas. https://developer.apple.com/library/content/samplecode/CloudAtlas/Introduction/Intro.html#//apple_ref/doc/uid/TP40014599

Actualización 18/05/15

En caso de que alguien se esté preguntando, este error fue resuelto por Apple hace mucho tiempo y ahora funciona como un encanto, aunque es necesario hacer algunas consideraciones:

  1. Asegúrese de que el método saveSubscription: completedHandler: se ejecute sin errores
  2. Si usa [application registerForRemoteNotifications]; SOLO recibirá notificaciones con la aplicación en primer plano, puede parecer que no tiene sentido, pero es muy útil ya que este tipo de notificaciones push son "silenciosas" y no requiere permiso del usuario para usarlas
  3. Si quieres recibir notificaciones push de moda antigua con la ventana emergente solicitando permiso y una alerta que aparece fuera de la aplicación y todo lo que necesitas para usar algo como:

    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];

    [aplicación registerUserNotificationSettings: settings];

Eso es todo