que notificaciones llegan las direct apple apns iphone ios push-notification apple-push-notifications

llegan - notificaciones push iphone



La notificación de Apple Push no funciona en la producción. (1)

Estamos totalmente atascados, por favor ayuda.

Mi equipo y yo creamos una aplicación para iPhone, y esta es la primera vez que probamos en iOS.

Todo está bien, hasta que enviamos nuestra aplicación y estuvimos disponibles en la tienda de aplicaciones, el servicio de notificaciones push no funciona. Busqué en la web e intenté verificar dos veces nuestra aplicación según los consejos de la gente, pero no pude encontrar el problema. Así que esta pregunta se publica aquí.

Esto es lo que hicimos:

  1. Construimos la aplicación, supongamos que se llama "AppMaster".

  2. Creamos AppId en iOS Provisioning Portal llamado: "pushtest". Este ID habilitó la Notificación Push tanto en el desarrollo como en la producción.

  3. Creamos un aprovisionamiento para el desarrollo llamado "AppMasterPushTest" desde el ID de aplicación anterior. Este aprovisionamiento es para prueba interna, todos los miembros del equipo lo instalaron en su mac.

  4. Nuestro servidor está implementado por Java y usamos el paquete java-apn. durante la prueba, descargamos el archivo de certificación para el desarrollo y escribimos el archivo .p12, y enviamos nuestro mensaje al servidor "sandbox" utilizando la api - withSandboxDestination () del paquete con ese archivo .p12. prueba va bien, se reciben notificaciones.

  5. Pensé que estábamos listos, así que creamos otro AppId llamado "AppMaster", y habilitamos la Notificación Push solo para producción. Esta identificación está escrita en el identificador de paquete de la aplicación.

  6. Hicimos otro aprovisionamiento para producción llamado "appMaster" de AppId en el paso 5, con el método de distribución establecido como "App Store". descargado y reconstruir la aplicación. Este fue enviado a Apple, y cobra vida con el app-stroe.

  7. Del lado del servidor, descargamos la certificación para la producción y volvemos a escribir el archivo .p12. e hizo un programa para enviar un mensaje al servidor de producción usando la API conProductionDestination (), con el .p12 recién escrito.

  8. Instalamos la aplicación desde la App Store. Lamentablemente, la notificación nunca fue entregada.

¿Hay algo que nos perdimos? Por cierto, el ID que creamos en el paso 5 se parecía a "XXX.com.company.appname", pero en el identificador del paquete de la aplicación, simplemente configuramos la parte "com.company.appname" sin el prefijo. ¿Este podría ser el problema?

Cualquier idea es bienvenida.

por favor sea nuestro ahorrador. Gracias.


El comentario anterior es incorrecto. La ID de la aplicación tiene un prefijo antes de la ID del paquete:

Un ID de aplicación consta de un ID de paquete de aplicación con un código de diez caracteres generado por Apple. El administrador del equipo debe ingresar la ID del paquete. Para un certificado, debe incorporar un ID de paquete específico; no se puede utilizar un ID de aplicación "comodín".

Debe verificar su perfil de aprovisionamiento para asegurarse de que contenga el derecho de aps correcto:

Verifique que los derechos en el archivo de perfil de aprovisionamiento sean correctos. Para hacer esto, abra el archivo .mobileprovision en un editor de texto. Los contenidos del archivo están estructurados en XML. En el diccionario de derechos localice la clave aps-environment. Para un perfil de aprovisionamiento de desarrollo, el valor de cadena de esta clave debe ser el desarrollo; para un perfil de aprovisionamiento de distribución, el valor de cadena debe ser de producción .

Debe asegurarse de que está utilizando tokens de dispositivo de producción al enviar notificaciones push al servidor APNS de producción (los tokens de dispositivo que funcionan en el entorno de sandbox no funcionan en el entorno de producción).

Debería haber probado su aplicación con un perfil de aprovisionamiento AdHoc antes de lanzarla a la tienda de aplicaciones. El perfil AdHoc funciona con el entorno de empuje de producción.

EDITAR:

Algunas citas con respecto a los tokens de dispositivos:

Desde la Guía de programación de notificaciones locales y push :

Tenga en cuenta que el token del dispositivo en el entorno de producción y el token del dispositivo en el entorno de desarrollo (sandbox) no tienen el mismo valor.

De la Nota Técnica TN2265 :

Manejo de notificaciones mal formadas

La interfaz binaria simple elimina la conexión si el servicio de inserción recibe una notificación que es incorrecta de alguna manera. Su proveedor puede ver esto como un error EPIPE o un error en la tubería en respuesta al envío de una notificación. Por otro lado, la interfaz binaria mejorada enviará una respuesta de error con información más detallada sobre el error de la notificación antes de interrumpir la conexión. Asegúrese de que su proveedor detecte y maneje estas condiciones adecuadamente.

El problema más común es un token de dispositivo no válido. Si el token proviene del entorno de sandbox, como cuando está probando un desarrollo de desarrollo interno, no puede enviarlo al servicio de empuje de producción. Cada entorno de inserción emitirá un token diferente para el mismo dispositivo o computadora. Si envía un token de dispositivo al entorno incorrecto, el servicio de inserción lo verá como un token no válido y descartará la notificación.

Finalmente, este artículo tiene una buena explicación de cómo enviar múltiples notificaciones a Apple cuando algunas de las notificaciones no son válidas (la causa más común son los tokens de dispositivos no válidos), puede causar que algunas de las notificaciones válidas no lleguen también.