react notification apple ios apple-push-notifications

apple - push notifications ios swift



Aplicación rechazada por "Falta el derecho de notificación de inserción" (10)

Abra su perfil de aprovisionamiento en cualquier editor de texto y busque "entorno".

Deberías encontrar: aps-environment

Si no ve aps-environment en su perfil de aprovisionamiento, existe un problema en su certificado de aprovisionamiento de Apple.

Si creó un certificado sin notificaciones push y luego agregó el servicio de notificación push, Apple NO actualiza su perfil de aprovisionamiento.

Necesita crear un NUEVO perfil de aprovisionamiento. Firme el binario con este nuevo Perfil de Aprovisionamiento y estará listo.

Recientemente mi aplicación fue rechazada mientras la cargaba. El equipo de revisión de Apple dice que mi aplicación es "Falta de derechos de notificación de inserción"

Esta es la información que han proporcionado:

Falta el derecho de notificación de inserción: su aplicación se registra con el Servicio de notificación de inserción de Apple, pero los derechos de la firma de la aplicación no incluyen el derecho de "aps-environment" requerido. Asegúrese de haber habilitado Push Notification Services para esta aplicación, y de que haya descargado un perfil de aprovisionamiento de distribución que incluya el derecho de "aps-environment".

Las versiones anteriores de mi aplicación solían tener notificaciones automáticas, y mi binario de la aplicación nunca fue rechazado debido a eso. ¿Qué debería hacer aquí?


He recreado mi perfil de aprovisionamiento de Distribución y he desarrollado mi aplicación con él. Este cambio solucionó el problema de la pérdida de los derechos de notificación de inserción.


Recibí este mismo mensaje de error y la recreación de mi perfil de aprovisionamiento no lo eliminó.

En cambio, descubrí que mi aplicación contenía algunos símbolos APNS relacionados (en una biblioteca) que no estaban siendo utilizados. Al parecer, provocaron que un analizador estático marcara la aplicación como si se tratara de notificaciones push (no es así). # ifdef -ing los símbolos permitieron que mi aplicación sea aceptada sin el derecho de aps-environment.


Recientemente me encontré con este problema después de agregar una extensión de hoy a una aplicación con servicios de inserción habilitados. Finalmente, nos dimos cuenta de que el perfil de Mobile Provisioning generado por Xcode para Today Extension no tenía habilitados los Servicios de Notificaciones Push. Una vez que habilité Push Services para Today Extension, la advertencia de Apple desapareció.


Si está enviando un proyecto Cordova / Phonegap y NO está utilizando notificaciones push, debe inspeccionar Classes/AppDelegate.m para conocer los dos métodos a continuación. Observado en Cordova 3.7.0, no estoy seguro sobre otras versiones.

Asegúrate de no estar usando notificaciones remotas de ninguna otra forma (revisa cuidadosamente tus complementos también). Luego elimine o comente el siguiente bloque:

- (void) application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken { // re-post ( broadcast ) NSString* token = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<" withString:@""] stringByReplacingOccurrencesOfString:@">" withString:@""] stringByReplacingOccurrencesOfString:@" " withString:@""]; [[NSNotificationCenter defaultCenter] postNotificationName:CDVRemoteNotification object:token]; } - (void) application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error { // re-post ( broadcast ) [[NSNotificationCenter defaultCenter] postNotificationName:CDVRemoteNotificationError object:error]; }

Espero que esto te ahorre unas horas ;-)


También tuve este problema con una aplicación de Cordova y después de leer un poco, parece que este es un problema común hoy en día.

¿POR QUÉ SUCEDIÓ?

Como usted menciona que su aplicación ya fue aprobada mediante notificaciones automáticas, lo más probable es que el perfil de provisión de su aplicación haya cambiado al enviarlo a la AppStore. Quizás tú:

  1. reconstruyó su proyecto en XCode, o
  2. se mudó a otra computadora y olvidó decirle a XCode cuál era el perfil correcto, o
  3. alguien se sentó en su computadora y la cambió, o

Este problema ocurre porque los permisos se obtienen a través del perfil de suministro. Si olvida vincular el perfil de aprovisionamiento de su aplicación a un AppID que tiene el derecho de ''Notificaciones Push'' (tenga en cuenta que XCode lo hace automáticamente mediante el certificado de aprovisionamiento de desarrollador comodín por defecto), entonces es probable que reciba este mensaje hasta ordenarlo fuera de la autorización.

CÓMO ELIMINAR LA NECESIDAD DE NOTIFICACIONES DE PUSH EN APLICACIONES DE CORDOVA:

Estaba enviando una aplicación de Cordova cuando recibí este mensaje, y aunque la solución publicada por @jlapoutre es suficiente para que aprueben tu aplicación, quieres continuar beneficiándote de las actualizaciones de Cordova, así que lo mejor es aprovechar la compilación condicional (es decir, activar la directiva #ifndef DISABLE_PUSH_NOTIFICATIONS que le dice a XCode que compile su aplicación con este bit de código #ifndef DISABLE_PUSH_NOTIFICATIONS ).

La compilación condicional también se conoce como ''Macros de preprocesador'' en XCode-speak. Así es como puedes lograr esto gráficamente a través de la UI (ten en cuenta que así se hace en XCode 6.1):

Espero que esto ayude a otras personas en la misma situación.


Tuve el mismo problema y lo solucioné recreando el perfil de aprovisionamiento. Desde "Aprovisionamiento y desarrollo" en la Guía de notificaciones locales y automáticas:

El Team Admin o Team Agent debe crear el perfil de aprovisionamiento (Desarrollo o Distribución) utilizado en el lado del servidor del desarrollo de notificaciones remotas. El perfil de aprovisionamiento es una colección de activos que asocia a los desarrolladores de una aplicación y sus dispositivos con un equipo de desarrollo autorizado y permite que esos dispositivos se utilicen para las pruebas. El perfil contiene certificados, identificadores de dispositivos, la identificación del paquete de la aplicación y todos los derechos, incluidos. Todos los miembros del equipo deben instalar el perfil de provisión en los dispositivos en los que se ejecutarán y probar el código de la aplicación.


Yo tengo el mismo problema. Lo he resuelto

Creo que este problema se produce cuando se agrega la función push-notificación a AppID y no se recrea el aprovisionamiento. Recibiremos una advertencia cuando agreguemos la función iCloud:

Todos los nuevos perfiles de aprovisionamiento que cree para este ID de aplicación estarán habilitados para iCloud. Si desea habilitar iCloud para cualquier perfil de aprovisionamiento existente asociado con este ID de aplicación, debe regenerarlos manualmente

Creo que cuando agreguemos alguna función en AppID, deberíamos regenerar manualmente todos los aprovisionamientos que están relacionados con ese ID de aplicación.

creo que si


Mi caso : he implementado notificaciones automáticas para una actualización de mi aplicación de tienda de aplicaciones. Como los perfiles de aprovisionamiento anteriores a la impulsión de notificación de inserción dejan de ser válidos, he creado un nuevo perfil de aprovisionamiento de distribución de la tienda de aplicaciones y he creado la aplicación con un nuevo perfil y la he cargado en la tienda. Pero recibí un correo que decía "Falta el derecho de notificación de inserción".

Hallazgo : descubrí que, al archivar, Xcode usa el perfil de aprovisionamiento incorrecto (antiguo / no válido). Así que eliminó el viejo perfil de aprovisionamiento del centro de miembros y resolvió el problema


Pasos

  1. Habilitar servicio de notificación push (Certificado SSL de producción push)

  2. Cree / recree el perfil de aprovisionamiento de distribución y cree su aplicación con el perfil de provisión de distribución actualizado.

Los siguientes recursos pueden ayudarte