Все ли приложения в iOS имеют один и тот же deviceToken?

После гугла вопрос меня смущает. Все ли приложения в iOS имеют одинаковые DeviceToken?

Вот Apple Document о проблеме.

Маркер устройства — это непрозрачный экземпляр NSData, который содержит уникальный идентификатор, назначенный Apple конкретному приложению на конкретном устройстве. Только APN могут декодировать и читать содержимое токена устройства. Каждый экземпляр приложения получает свой уникальный токен устройства при регистрации в APN, а затем должен переслать токен своему провайдеру, как описано в разделе Настройка поддержки удаленных уведомлений. Поставщик должен включать токен устройства в каждый запрос push-уведомления, предназначенный для связанного устройства; APN использует токен устройства, чтобы уведомление доставлялось только той уникальной комбинации приложение-устройство, для которой оно предназначено.


person Ran Ji    schedule 27.02.2018    source источник
comment
Каждый экземпляр приложения получает свой уникальный токен устройства, когда он регистрируется в APN.   -  person Saad Chaudhry    schedule 27.02.2018
comment
НЕТ, DeviceToken часто меняется   -  person iParesh    schedule 27.02.2018
comment
@SaadChaudhry Я думал, что у них один и тот же токен, и когда поставщик push-уведомлений, Apple apns различает разные приложения с идентификатором пакета   -  person Ran Ji    schedule 27.02.2018
comment
@iParesh Я знаю, когда обновляешь приложения или обновляешь iOS, все меняется. но есть ли у facebook и instagram одинаковый токен?   -  person Ran Ji    schedule 27.02.2018
comment
@Ran Оба токена устройства разные   -  person iParesh    schedule 27.02.2018
comment
developer.apple.com/library/content/documentation/   -  person Saad Chaudhry    schedule 27.02.2018
comment
@iParesh Я имею в виду (NSData *) deviceToken, а не идентификатор Bundle   -  person Ran Ji    schedule 27.02.2018
comment
@RanJi Как уже говорили несколько человек, каждое приложение на устройстве получает свой собственный токен устройства. Таким образом, у Facebook есть один, у Instagram есть другой, и ваше собственное разработанное приложение получает его. Ни одно приложение не использует один и тот же токен устройства.   -  person Hodson    schedule 27.02.2018
comment
токен APNs уникален во всем мире в экосистеме Apple для каждой установки приложения на каждом устройстве; что означает, что на практике токен вашего приложения будет совершенно другим, даже после того, как пользователь просто переустановит ваше то же самое приложение на том же устройстве.   -  person holex    schedule 27.02.2018


Ответы (4)


Каждое приложение имеет свой токен устройства.

токен устройства — это идентификатор системы push-уведомлений Apple для iOS. устройства. Apple назначает токен устройства для каждого приложения (iOS 7 и более поздние версии), который используется в качестве уникального идентификатора для отправки push-уведомлений. Каждое устройство имеет два токена устройства для каждого приложения: один для разработки и один для производства (специальные сборки или сборки в магазине приложений). Токены состоят из 64 шестнадцатеричных символов.

person PPL    schedule 27.02.2018
comment
поэтому, когда я получаю уведомление, провайдер должен предоставить Apple два параметра: уникальный токен приложения и идентификатор пакета приложений? - person Ran Ji; 27.02.2018
comment
Токены устройств APN @vikingosegundo имеют переменную длину. Не задавайте их размер жестко. - person Saad Chaudhry; 27.02.2018
comment
токен устройства - это идентификатор, это идентификатор пакета? Я имею в виду (NSData *)deviceToken - person Ran Ji; 27.02.2018
comment
Нет, это не идентификатор пакета, это строка из 64 шестнадцатеричных символов. - person PPL; 27.02.2018
comment
@RanJi см. это stackoverflow.com/questions/37956482/ - person PPL; 27.02.2018

Нет, каждое приложение получит свой токен устройства.

Также обратите внимание, что токен устройства, назначенный приложению/устройству, может время от времени меняться и действительно меняется, поэтому вам всегда нужно отправлять обновленную версию на ваш push-сервер и/или любые другие службы, которые могут использовать токен устройства.


Небольшое уточнение по поводу смены токена устройства «время от времени»:

Значение «время от времени» означает «иногда, но не регулярно».

Взято из документации Apple:

Никогда не кэшируйте токены устройств в своем приложении; вместо этого получите их из системы, когда они вам понадобятся. APN выдает вашему приложению новый токен устройства, когда происходят определенные события. Токен устройства гарантированно будет другим, например, когда пользователь восстанавливает устройство из резервной копии, когда пользователь устанавливает ваше приложение на новое устройство и >когда пользователь переустанавливает операционную систему.

person Hodson    schedule 27.02.2018
comment
что означает это время от времени? откуда берутся такие предположения? токен не будет меняться по мере того, как он будет происходить совершенно неожиданно раз за разом, поэтому не могли бы вы уточнить, пожалуйста? - person holex; 27.02.2018
comment
Обновлен ответ, чтобы добавить некоторые разъяснения @holex - person Hodson; 27.02.2018
comment
вы могли бы процитировать это, это гораздо более простое объяснение: Получение через APN глобально уникальных токенов устройств для конкретного приложения и других соответствующих данных из экземпляров вашего приложения на пользовательских устройствах. (источник ) - person holex; 27.02.2018

Каждый экземпляр приложения получает свой уникальный токен устройства при регистрации в APN.

person HeroG    schedule 27.02.2018

Каждое приложение имеет свой токен устройства. Это будет сгенерировано, когда вы зарегистрируетесь для получения push-уведомлений.

Если вы переустановите приложение, вы также получите другой токен устройства для того же приложения на том же устройстве.

person Tejas Ardeshna    schedule 27.02.2018