iphone - sirve - Restablecer la configuración de notificación de inserción para la aplicación




restaurar copia de seguridad iphone en otro iphone (9)

Estoy desarrollando una aplicación con notificaciones push. Para verificar todas las formas posibles de interacción del usuario, me gustaría probar mi aplicación cuando un usuario rechaza tener notificaciones push habilitadas para mi aplicación durante el primer inicio.

El diálogo (iniciado por registerForRemoteNotificationTypes ), sin embargo, aparece solo una vez por aplicación. ¿Cómo restablezco la memoria de mi aplicación del iPhone OS? Eliminar la aplicación y reinstalar no ayuda.


Además de la respuesta de ianolito.

Tuve el mismo problema con una aplicación que descargué hace un año y denegar la notificación de inserción inicialmente. Ahora que quería recibir notificaciones push, estos pasos me funcionaron en iOS 7 beta. No estoy seguro de qué punto (s) lo activó exactamente.

  • Cierre y elimine la aplicación.
  • Vaya a su configuración de iCloud y elimine la aplicación de iCloud. Haga esto en todos los otros dispositivos donde tenga habilitada la copia de seguridad de iCloud para aplicaciones. Después de desactivar y eliminar, haga una nueva copia de seguridad. La aplicación no debería aparecer en la lista debajo de las copias de seguridad. (Esta es quizás la razón por la nota técnica de Apple descrita por ianolito dejó de funcionar en iOS 5, ya que iCloud se introdujo en iOS 5 y muchos tienen copia de seguridad de iCloud para aplicaciones habilitadas).
  • Vaya a la configuración de su tiempo y configure la hora con más de 1 mes de anticipación.
  • Desconecte el iPhone (sin restablecer).
  • Espere un minuto, vuelva a encenderlo y descargue la aplicación nuevamente.
  • Inicie la aplicación y se me presentó el diálogo nuevamente.
  • Habilite la copia de seguridad de la aplicación nuevamente, ya que aún está desactivada. Corrija el tiempo.

Gracias a Dios que no tuve que "borrar todo el contenido y la configuración". Quizás ayudará a alguien.


Como dijo ianolito, establecer la fecha debería funcionar:

Puede lograr esto último sin tener que esperar un día configurando el reloj del sistema en un día o más, apagando el dispositivo por completo y volviendo a encender el dispositivo.

Me di cuenta de que en mi dispositivo (iPhone 4, iOS 6.1.2) configurar el reloj del sistema un día o incluso algunos días no funcionó para mí. Así que establecí la fecha un mes y luego funcionó y mi aplicación mostró nuevamente el aviso de notificaciones.

Espero que esto ayude a cualquiera, ¡puede ser una especie de dolor de cabeza!


Después de horas de búsqueda, y sin suerte con las sugerencias anteriores, esto funcionó como un encanto para 3.x +

override func viewDidLoad() {
        super.viewDidLoad()


            requestAuthorization()

}

func requestAuthorization() {

        if #available(iOS 10.0, *) {

            UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
                print("Access granted: \(granted.description)")
            }

        } else {
            // Fallback on earlier versions
        }

    }

El Apple Tech Note también describió que puede restaurar el dispositivo para restablecer el diálogo de notificación de inserción.

No dice que también puede usar la opción "General -> Restablecer -> Borrar todo el contenido y la configuración" en el dispositivo mismo (iOS 5.x).


En iOS 9.0.2, obtengo la "alerta de notificación de inserción de inserción" cada vez que elimino la aplicación y la vuelvo a instalar. Esto es cierto tanto para las descargas de producción AppStore como para el modo adhoc.

ACTUALIZACIÓN: se confirma que esto está funcionando para iOS 9.x


Estoy de acuerdo con micmdk. Tenía una configuración de entorno de desarrollo con Notificaciones Push y necesitaba una manera de restablecer mi teléfono para que pareciera una instalación inicial ... y solo estos pasos precisos me funcionaron ... requiere DOS reinicios del dispositivo:

De APPLE TECH DOC:

Restablecimiento de las notificaciones push Permisos de alerta en iOS La primera vez que una aplicación activada por push se registra para recibir notificaciones push, iOS 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 se restaure el dispositivo o la aplicación se haya desinstalado durante al menos un día.

Si desea simular una ejecución por primera vez de su aplicación, puede dejar la aplicación desinstalada por un día. Puede lograr esto último sin esperar un día siguiendo estos pasos:

  1. Elimina tu aplicación del dispositivo.

  2. Apague el dispositivo por completo y vuelva a encenderlo.

  3. Vaya a Configuración> General> Fecha y hora y establezca la fecha siguiente un día o más.

  4. Apague el dispositivo por completo nuevamente y vuelva a encenderlo.


La misma nota técnica que se menciona en la respuesta aceptada ( TN2265 - Solución de problemas de notificaciones automáticas) se ha actualizado desde entonces con una solución para iOS 5 y superior.

En resumen: crear una copia de seguridad y restaurar desde allí todo el tiempo.

En iOS 5 y posterior, reinicie la alerta de permisos de notificaciones push restaurando el dispositivo desde una copia de seguridad (r 11450187). Estos son los pasos para hacer esto de manera eficiente:

  1. Use el Organizador de Xcode para instalar su aplicación en el dispositivo. La clave es instalar la aplicación por primera vez sin ejecutarla.
  2. Use iTunes para hacer una copia de seguridad del dispositivo.
  3. Ejecuta la aplicación. Se presentará la alerta de permisos de notificaciones automáticas.
  4. Cuando desee restablecer la alerta de permisos de notificaciones automáticas, restaure el dispositivo desde la copia de seguridad que creó en el primer paso.

Me he preguntado sobre esto en el pasado y llegué a la conclusión de que no era realmente un caso de prueba válido para mi código. No creo que el código de su aplicación realmente pueda diferenciar entre que alguien rechace las notificaciones la primera vez o más tarde inhabilitándolo desde la configuración de notificaciones del iPhone. Es cierto que la experiencia del usuario es diferente, pero está oculta dentro de la llamada a registerForRemoteNotificationTypes.

Llamar a unregisterForRemoteNotifications no elimina por completo la aplicación de la configuración de notificaciones, aunque elimina el contenido de la configuración de esa aplicación. Por lo tanto, esto no provocará 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 v3.1.3 con la que estoy probando). Pero como dije antes, probablemente no deberías preocuparte por eso.


Nota técnica TN2265: solución de problemas de notificaciones automáticas

La primera vez que se registra una aplicación push para notificaciones push, iOS 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 se restaure el dispositivo o la aplicación se haya desinstalado durante al menos un día.

Si desea simular una ejecución por primera vez de su aplicación, puede dejar la aplicación desinstalada por un día. Puede lograr esto último sin tener que esperar un día configurando el reloj del sistema en un día o más, apagando el dispositivo por completo y volviendo a encender el dispositivo.

Actualización: Como se señala en los comentarios a continuación, esta solución dejó de funcionar desde iOS 5.1. Me gustaría presentar un error con Apple para que puedan actualizar su documentación. La solución actual parece 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.

  1. Elimina tu aplicación del dispositivo.
  2. Apague el dispositivo por completo y vuelva a encenderlo.
  3. Vaya a Configuración> General> Fecha y hora y establezca la fecha siguiente un día o más.
  4. Apague el dispositivo por completo nuevamente y vuelva a encenderlo.




push-notification