Для того, чтобы мы могли отправлять пользователям уведомления iOS, происходит следующий поток: пользователь устанавливает наше приложение, регистрируется с помощью APNS и отправляет токен регистрации на наш сервер, который будет использоваться позже для отправки уведомлений.
Вышеописанный процесс повторяется для каждого устройства, на котором пользователь устанавливает наше приложение; мы хотели бы, чтобы они получали уведомления на всех своих устройствах.
В дополнение к этому, процесс повторяется, когда пользователь удаляет наше приложение и переустанавливает его на том же устройстве.
Каждый раз, когда процесс повторяется, мы получаем новый, отличный регистрационный токен. Это все хорошо и хорошо, однако мы заметили, что только недавно, когда наше приложение удалено, токен устройства остается в силе после его переустановки и создается новый токен. Мы понимаем, что для устройства может существовать единственный уникальный токен.
Документация Apple также предлагает это (https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW12)
Форма этой фазы доверительного отношения к токенам гарантирует, что только APN генерирует токен, который он будет позже чтить, и он может убедиться, что токен, переданный ему устройством, является тем же самым токеном, который он предварительно предоставил для этого конкретного устройства И только для этого устройства.
Когда новый токен создается после переустановки и отправки на наш сервер, у нас есть два токена устройства, которые указывают на одно и то же устройство, и в результате мы отправляем несколько уведомлений на это устройство. Не понимаем ли мы документацию? Если да, то какой типичный способ справиться с переустановкой сценария?
Спасибо!