Токен устройства ios 7 отличается для одного и того же устройства

У меня в одном устройстве два приложения. Для iOS 7 оба приложения отправляют разные токены устройства, но для iOS 6 оба приложения отправляют один и тот же токен устройства.

Насколько я понимаю, токен устройства должен быть одинаковым для всего приложения на одном устройстве. Что-то отличается в iOS7 от iOS 6?


person Paragon    schedule 22.10.2013    source источник


Ответы (3)


ОБНОВЛЕНИЕ:

Думаю, я прочитал это слишком быстро. Обратите внимание на мои исправления. Если ответ соответствует вашему варианту использования, не стесняйтесь его принять.

Основываясь на вашем описании, я бы предположил, что произошли основные изменения в генерации токенов между iOS6 и iOS7. Чтобы более внимательно изучить это поведение, я рекомендую вам взглянуть на Руководство по программированию локальных и push-уведомлений. В Руководстве в разделе «Планирование, регистрация и обработка уведомлений» можно найти это заявление от Apple.

Токены устройства могут изменяться. Приложению необходимо повторно регистрироваться при каждом запуске - в iOS путем вызова метода registerForRemoteNotificationTypes: UIApplication, а в OS X путем вызова метода registerForRemoteNotificationTypes: приложения NSApplication. Параметр, передаваемый этому методу, определяет начальные типы уведомлений, которые приложение желает получать. Пользователи могут изменять включенные типы уведомлений в любой момент, используя настройки в iOS или Системные настройки в OS X. Вы можете запросить текущие включенные типы уведомлений, используя свойство enabledRemoteNotificationTypes UIApplication или свойство enabledRemoteNotificationTypes NSApplication. Система не отображает значки, не отображает предупреждающие сообщения и не воспроизводит звуковые сигналы, если какой-либо из этих типов уведомлений не включен для вашего приложения, даже если они указаны в полезной нагрузке уведомления.

Ссылка:

Apple использует токены устройств, когда пользователи соглашаются получать удаленные уведомления от Apple Push Service.

Обычно доступ к токену устройства осуществляется следующим способом:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

deviceToken Маркер, который идентифицирует устройство для APS. Маркер является непрозрачным типом данных, потому что это форма, которую провайдер должен отправить на серверы APS, когда он отправляет уведомление на устройство. Серверы APS требуют двоичного формата по соображениям производительности.

Обратите внимание, что маркер устройства отличается от свойства uniqueIdentifier UIDevice, поскольку по соображениям безопасности и конфиденциальности он должен изменяться при очистке устройства.

Токены устройств, используемые в службе push-уведомлений Apple

Также произошли значительные изменения в идентификаторе UIDevice (Apple ограничила использование). Я бы посоветовал прочитать следующее:

person Tommie C.    schedule 22.10.2013

Это тоже было полезно. См. Пункт 1 этой статьи: https://support.urbanairship.com/customer/portal/articles/1321513-how-ios-7-handles-push-differently

"До iOS 7 токен устройства был одним и тем же для всех установок приложений на данном устройстве. Различные приложения на вашем телефоне, будь то Tap Tap Revenge или USA Today, использовали один и тот же адрес, то есть токен устройства, для маршрутизации push-уведомлений. уведомление для вас. Учетные данные безопасности, которые вы связываете с сообщением, гарантируют, что оно попадет в нужное приложение. В iOS 7 Apple пошла еще дальше и убедилась, что токены устройства теперь разные при каждой установке приложения . Это помогает еще больше защитить конфиденциальность пользователей за счет удаления другого идентификатора на уровне телефона ".

person Paragon    schedule 22.10.2013
comment
На самом деле эта статья отвечает на вопрос, поэтому этот ответ должен быть принятым ответом. Возможно, вам следует скопировать основные положения статьи к этому ответу, поскольку ответы только по ссылкам здесь не приветствуются. - person Eran; 23.10.2013
comment
Ответы только на ссылки не приветствуются по нескольким причинам, не последней из которых является гниение ссылок. Фактически, указанная выше статья перемещена на support.urbanairship.com/customer/portal/articles/ - person John Cummings; 10.08.2015
comment
Я также добавил абзац из этой статьи. - person Paragon; 11.08.2015

Хотя это очень поздний ответ, я хочу поделиться своим тестом, проведенным для i0S 9.2.1. Маркер устройства уникален для каждого приложения на устройстве. Новый токен устройства будет генерироваться каждый раз, когда мы устанавливаем приложение. Насколько мне известно, Apple изменила свою политику в отношении токенов устройства после того, как выпустила iOS7.

person Bipin Khanal    schedule 04.02.2016