Nota técnica TN2265: Solución de problemas de notificaciones push
La primera vez que una aplicación habilitada para push se registra para recibir notificaciones push, iOS le pregunta al usuario si desea recibir notificaciones para esa aplicación. Una vez que el usuario ha respondido a esta alerta, no se vuelve a presentar a menos que el dispositivo se restaure o la aplicación se haya desinstalado durante al menos un día.
Si desea simular una primera ejecución de su aplicación, puede dejar la aplicación desinstalada por un día. Puede lograr esto último sin esperar realmente un día al adelantar el reloj del sistema un día o más, apagar el dispositivo por completo y luego volver a encenderlo.
Actualizar: como se señala en los comentarios a continuación, esta solución dejó de funcionar desde iOS 5.1. Le recomendaría que presente un error en Apple para que puedan actualizar su documentación. La solución actual parece ser restablecer el contenido y la configuración del dispositivo.
Actualización: la nota técnica se ha actualizado con nuevos pasos que funcionan correctamente a partir de iOS 7.
- Elimina tu aplicación del dispositivo.
- Apague el dispositivo por completo y vuelva a encenderlo.
- Vaya a Configuración> General> Fecha y hora y configure la fecha un día o más.
- Apague el dispositivo completamente de nuevo y vuelva a encenderlo.
ACTUALIZACIÓN a partir de iOS 9
Simplemente eliminar y reinstalar la aplicación restablecerá el estado de notificación notDetermined
(lo que significa que aparecerán avisos).
Gracias a la respuesta de Gomfucius a continuación:
https://stackoverflow.com/a/33247900/704803
Otra solución para probar esto es simplemente cambiando su ID de paquete. ¡Solo no olvides cambiarlo una vez que hayas terminado!
fuente
En iOS 9.0.2, recibo la "alerta de notificación push de registro" cada vez que elimino la aplicación y la reinstalo. Esto es cierto tanto para las descargas de producción de AppStore como para el modo adhoc.
ACTUALIZACIÓN: se confirma que esto funciona para iOS 9.x
fuente
Como ya se señaló, el enfoque para restablecer el estado de notificación para una aplicación en un dispositivo se cambia para iOS5 en adelante.
Esto funciona para mí en iOS6:
Sin embargo, esto solo hará que aparezca el mensaje inicial nuevamente; no eliminará ningún otro elemento relacionado con el estado de inserción.
fuente
El plist: /private/var/mobile/Library/RemoteNotification/Clients.plist
... contiene los clientes registrados para notificaciones push. Si eliminas la entrada de tu aplicación, aparecerá el mensaje.
fuente
Hacerlo programáticamente parece funcionar para mí todo el tiempo. Tengo una compilación con la siguiente línea sin comentarios:
Lo ejecuto cada vez que quiero darme de baja de PN. Es posible que deba finalizar la aplicación explícitamente en la lista de recientes y jugar con el Centro de notificaciones en la aplicación Configuración para hacerlo bien.
Además, la solicitud de IU que le pide al usuario que se registre para PN puede no aparecer. No estoy seguro si se ha deshabilitado en alguna de las versiones recientes de iOS.
fuente
Como dijo ianolito, establecer la fecha debería funcionar:
Noté en mi dispositivo (iPhone 4, iOS 6.1.2) que el reloj del sistema avanzaba un día o incluso unos pocos días no me funcionaban . Así que puse la fecha hacia adelante un mes y luego funcionó y mi aplicación mostró las notificaciones de nuevo.
Espero que esto ayude a cualquiera, ¡puede ser un poco doloroso!
fuente
Estoy de acuerdo con micmdk ... Tenía una configuración de entorno de desarrollo con notificaciones push y necesitaba una forma de restablecer mi teléfono para que pareciera una instalación inicial ... y solo estos pasos precisos funcionaron para mí ... requiere DOS reinicios del dispositivo:
De APPLE TECH DOC:
Restablecimiento de la alerta de permisos de notificaciones push en iOS La primera vez que una aplicación habilitada para push se registra para recibir notificaciones push, iOS le pregunta al usuario si desea recibir notificaciones para esa aplicación. Una vez que el usuario ha respondido a esta alerta, no se vuelve a presentar a menos que el dispositivo se restaure o la aplicación se haya desinstalado durante al menos un día.
Si desea simular una primera ejecución de su aplicación, puede dejar la aplicación desinstalada por un día. Puede lograr esto último sin esperar realmente un día siguiendo estos pasos:
Elimina tu aplicación del dispositivo.
Apague el dispositivo por completo y vuelva a encenderlo.
Vaya a Configuración> General> Fecha y hora y configure la fecha un día o más.
Apague el dispositivo completamente de nuevo y vuelva a encenderlo.
fuente
Me he preguntado sobre esto en el pasado y llegué a la conclusión de que en realidad no era un caso de prueba válido para mi código. No creo que el código de su aplicación pueda notar la diferencia entre alguien que rechaza las notificaciones la primera vez o más tarde deshabilitándolo de la configuración de notificaciones del iPhone. Es cierto que la experiencia del usuario es diferente, pero eso está oculto dentro de la llamada a registerForRemoteNotificationTypes.
Llamar a unregisterForRemoteNotifications no elimina completamente la aplicación de la configuración de notificaciones, aunque sí elimina el contenido de la configuración de esa aplicación. Por lo tanto, esto aún no hará que el diálogo se presente por segunda vez al usuario la próxima vez que se ejecute la aplicación (al menos no en la v3.1.3 con la que estoy probando actualmente). Pero como digo más arriba, probablemente no deberías preocuparte por eso.
fuente
La misma nota técnica a la que se hace referencia en la respuesta aceptada ( TN2265 - Solución de problemas de notificaciones push) se ha actualizado con una solución para iOS 5 y superior.
En resumen: cree una copia de seguridad y restaure desde allí cada vez.
fuente
La nota técnica de Apple también describe que puede restaurar el dispositivo para restablecer el cuadro de diálogo de notificación push.
No dice que también puede usar la opción "General -> Restablecer -> Borrar todo el contenido y la configuración" en el dispositivo (iOS 5.x).
fuente
Además de la respuesta de ianolito.
Tuve el mismo problema con una aplicación que descargué hace un año y negué inicialmente la notificación push. Ahora que quiero volver a recibir notificaciones push, estos pasos funcionaron para mí en iOS 7 beta. No estoy seguro de qué punto (s) lo activaron exactamente.
Gracias a Dios no tuve que "Borrar todo el contenido y la configuración". Quizás ayude a alguien.
fuente
Recientemente me encontré con un problema similar con la aplicación react-native. La versión del iPhone OS era 13.1 Desinstalé la aplicación e intenté instalarla y noté que no se solicitaban los permisos de ubicación y notificación.
Al verificar la configuración, pude ver que mi aplicación estaba habilitada para la ubicación (desde la instalación anterior), sin embargo, no hubo una entrada correspondiente contra la notificación Intenté desinstalar y reiniciar sin configurar la hora, no funcionó. Por cierto, también intenté descargar la aplicación Appstore, que sigue siendo el mismo comportamiento.
El problema se resolvió solo después de configurar la hora del dispositivo.
fuente
Después de horas de búsqueda, y sin suerte con las sugerencias anteriores, esto funcionó de maravilla para 3.x +
fuente