Glede na to, da sem že delal s Push Notifications (imam delujoč strežnik in klienta), vam lahko malo razložim, kako stvar deluje in zakaj so problemi z neuradno aktiviranimi telefoni (odklep sam po sebi ni problem).
Torej... push notifications delujejo v smeri od aplikacijskega strežnika, preko applovega strežnika na telefon (to je osnova).
APLIKACIJSKI STREŽNIK ---> APPLE PUSH NOTIFICATIONS SERVICE (APNS) ---> TELEFON
Kako sedaj zadevo izvesti na ta način, da bo sporočilo dobil vedno pravi telefon? Aplikacijski strežnik mora APNS-ju nekako povedati, kateremu telefonu naj posreduje sporočilo. Torej mora imeti nek unikaten ID, po katerem bo APNS vedel, za kater telefon se gre. In ta ID se mora pri restoru spremeniti (če telefon prodaš naprej, nov lastnik ne bo več sprejemal tvojih sporočil), poleg tega mora biti pa za vsako push notifications aplikacijo različen... posledično za to nalogo ne pride v poštev UDID (ki se nikoli ne spremeni... je vezan na HW).
Kje sedaj dobiti tale ID, po katerem bo APNS vedel, za kater telefon in katero aplikacijo se gre? Aplikacijski strežnik ga sam od sebe ne more dobiti... posredovati mu ga mora telefon. Kje ga bo pa dobil telefon? Direktno pri APNS-ju. Ampak za to, da mu bo APNS posredoval tale ID, mu mora telefon posredovati certifikat, ki ga je dobil pri aktivaciji (saj veste... po restoru se mora zadeva spremeniti). In če je bil telefon neuradno aktiviran, tega certifikata ni... in če tega ni, mu APNS ne more posredovati ID-ja, ki je BISTVENEGA pomena za push notifications (preko tega se pač ve, komu so sporočila namenjena).
Kakšne so rešitve?
Prve rešitve (nek Push FIX) so slonele na tem, da so se tile certifikati šerali... ampak si lahko predstavljate, kaj se je dogajalo. Če sta imela dva uporabnika isti certifikat in isto aplikacijo, sta oba dobivala vsa sporočila (od enega in drugega). Tako da ta rešitev res ni prava.
Edina prava rešitev je ta, da telefon na nek način uradno aktiviraš... to se pa lahko naredi le s pravo SIM kartico.
Kdaj bo obstajala boljša rešitev? Glede na to, da sistem deluje s certifikati (ki se jih ne da kar tako kopirati), je to zelo veliko vprašanje. Jaz bi rekel, da le takrat, ko (če) bo apple spremenil način pridobivanja teh ID-jev, ki so pomembni za push notifications.