Solution: Uninstall the application and remove this code!
It took me many hours and 3 broken test devices to track this ...!
This line is Bad :
[[UIApplication sharedApplication] unregisterForRemoteNotifications]
This puts the application in an unstable state when the call to registerForRemoteNotifications no longer works.
This line is equally nasty :
[[UIApplication sharedApplication] registerForRemoteNotifications]
You must call it once and only once, for launching your application. If you call it twice, notifications will be mysteriously violated.
source share