Questa è una domanda abbastanza semplice.
Ho letto che i dispositivi jailbroken hanno alcuni problemi a ricevere notifiche push.
È proprio vero? E se sì, come possiamo risolverlo?
Per rispondere alla domanda, devi capire come funziona il servizio di notifica push di Apple. Ogni applicazione che desidera utilizzare le notifiche push deve registrarsi con il servizio di notifica push Apple (APNS). In genere, questo viene fatto subito dopo l'installazione. iOS chiede all'utente se l'app è autorizzata a ricevere notifiche push. Se l'utente è d'accordo, il suo iPhone parla con l'APNS e richiede un token che possa identificare la combinazione di applicazione e dispositivo. Questo token viene quindi consegnato al fornitore di servizi (ad esempio lo sviluppatore dell'applicazione). Se il provider desidera inviare una notifica push, invia questo token insieme al payload all'APNS, che quindi consegna il messaggio. Quindi puoi immaginare il token come una sorta di indirizzo. Ovvero, il provider deve includere il token in ogni richiesta di push message.
Ma come viene generato il token? Secondo Apple docs , la registrazione sopra menzionata funziona come segue: Il dispositivo invia il suo token dispositivo univoco (questo è un altro!) all'APNS e richiede il citato deviceToken
dall'APNS. Questo deviceToken
dipende tra l'altro dall'ID del dispositivo e dall'ID dell'app e viene generato utilizzando le funzioni crittografiche, quindi non può essere falsificato.
Ora ecco il punto: l'unico token iOS deve registrare le applicazioni e quindi consentire che le notifiche push vengano generate durante il processo di attivazione in iTunes. Il token univoco utilizza anche la crittografia e può essere ottenuto da Apple solo durante questo processo di attivazione. I dispositivi iOS jailbroken e hacktivated non eseguono mai l'attivazione ufficiale, quindi perdono il token. Quindi, le notifiche push non possono funzionare (almeno se Apple non ha commesso un grave errore nell'implementazione).