В дополнение к изменению, когда устройство стирается, токен для комбо приложения / устройства также будет меняться при отладке на устройстве с XCode по сравнению с тем, когда это же приложение запускается из выпущенной версии (магазина приложений) приложение.
Недавно у меня возникли проблемы, когда я хранил несколько токенов устройств для своего телефона. У меня в базе данных было два токена на один телефон. Один был назначен мне, когда я разрабатывал с Xcode, а другой был назначен из выпущенной версии приложения.
Проблема заключалась в том, что токен отладки работал только на серверах песочницы, а токен выпуска работал только на производственных серверах. Когда я тестировал, я отправлял оповещения обоим токенам, и Apple отбрасывала мое SSL-соединение, потому что одно из них было недействительным.
При этом я считаю, что Apple оставляет за собой право изменять их в любое время, поэтому необходимо запрашивать токен при каждом запуске приложения.
Надеюсь, это поможет.