2010-09-29 18 views
14

Estoy desarrollando notificaciones automáticas para una aplicación mía, escribí el proveedor en PHP y funciona bien. Anteriormente estaba probando las notificaciones push con mis builds de desarrollo y el servidor sandbox de Apple y todo funcionó bien, ahora estoy tratando de que funcione con una compilación AdHoc pero nunca recibo ningún mensaje en el teléfono. Esto es lo que hice:AdHoc build no recibe notificaciones push

  • Activar notificaciones push para la producción de la aplicación, crear el certificado, descargarlo, crear el PEM siguiendo las instrucciones here y subirlo a mi servidor. Configuré mi PHP Script para usar gateway.push.apple.com y el puerto 2195 para la conexión y probarlo, la conexión al servidor funciona como se espera.
  • la disposición de la carga útil es el mismo que con el dev y la escritura en la corriente que funciona
  • Después de activar la producción APN Reconstruí perfil de aprovisionamiento AdHoc y verifiqué después de la construcción que, en los derechos de APS-medio ambiente se ajusta a " producción "(que es)
  • Instalé la aplicación a través de AdHoc en un dispositivo que no ha ejecutado la aplicación antes, me preguntan si permite las PN, hago clic en Sí y mi servidor recibe el token como debería.
  • Se intentó enviar un mensaje (que debería enviarse a 3 dispositivos) a través del entorno de producción. No hay ningún error al conectar con Apple o enviar los datos, pero no recibo una notificación de inserción en ninguno de los dispositivos.

Estoy realmente fuera de las ideas lo que podría estar mal, ¿alguien tiene una idea? ¡Muchas gracias!

Respuesta

30

Finalmente me di cuenta de esto, el problema es que si abres una conexión con el APNS y envías más de una notificación push Y uno de los tokens que envías no es un token válido para este certificado (por ejemplo, envías sobre un token que pertenece a una instancia de desarrollo mientras está conectado con el certificado de producción), el APNS cancela la entrega de todas las PN que usted envió en este lote. Al menos eso es lo que experimenté hasta ahora, así que asegúrese de mantener siempre sus tokens de desarrollo y producción bien separados :)

+2

Cuál es el significado de la línea: siempre mantenga sus tokens de desarrollo y producción bien separados. el token es del dispositivo, entonces, ¿cuál es la diferencia entre dev y producción? – Vijay

+1

Hombre, ni idea de cuánto tiempo me tomó resolver esto también. Borré la base de datos para comenzar a probar con AdHoc y funcionó bien. Gracias por tu publicación. – Colnaghi

+2

Me estaba volviendo loco ... Todos los certificados y el aprovisionamiento móvil y tal configuración fue en gran medida (dos veces ...) y todavía no hay suerte. Dios mío, ¿cómo puede esto no está en la documentación de Apple Push Notification ... (Dicho esto, sería difícil de detectar) Muchas gracias. – nembleton

0

Estoy luchando con el mismo problema. Creo que el problema es que con compilaciones adhoc, Apple solo les enviará notificaciones desde el servidor apns de producción, inténtelo.

+0

¿Puede dar ejemplo de cómo hacer esto? – Charx

0

Para la distribución y el lanzamiento, utilice siempre el certificado de producción.

1

Los certificados push para producción y desarrollo son diferentes. Y para hacer tokens de dispositivos más difíciles para producción y sandbox son diferentes para el mismo dispositivo. Verifique si estos son correctos y estoy seguro de que debe haber fallado en esto. Para obtener el token del dispositivo en el modo de producción, escriba una alerta en el evento AppDelegate didreceivenotifications.

Una vez que obtenga esta manera, usted sabrá que es diferente de la señal dev que estamos generando es la razón por la que usted no era capaz de enviar una notificación sobre PROD

Cuestiones relacionadas