Iphone - несколько приложений, разные идентификаторы приложений, один и тот же токен - PullRequest
4 голосов
/ 29 сентября 2011

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

В моем случае у меня естьнесколько приложений скомпилированы с разными профилями обеспечения, и каждое из них основано на разных идентификаторах приложений (хотя некоторые из них имеют одинаковый идентификатор набора пакетов, а некоторые нет).

Для каждого приложения я сгенерировал push-уведомление о разработке SSL и экспортировал SSL для генерации PEM.Затем я загружаю профиль обеспечения и применяю его к XCode.

Когда я пытался запустить его на своем устройстве, я получаю следующее:

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

во всех приложениях - это один и тот же токен устройства.Интересно, почему это так?

И когда я попытался протолкнуть уведомление через мой сервер, не было получено сообщение об ошибке.Но уведомление никогда не доставлялось на установленные устройства.

Пожалуйста, дайте мне предложения по проблеме.Заранее спасибо.

Ответы [ 2 ]

21 голосов
/ 31 мая 2012

Токен устройства не уникален для каждого приложения, независимо от того, является ли это производственной средой или средой разработки.Вам может быть интересно, если маркер устройства одинаков для всех приложений, то как возможно, что push-уведомления направляются на нужные устройства и нужные приложения?Ответ - уникальный идентификатор пакета приложения.Каждое приложение в App Store имеет уникальный идентификатор, например: com.mycompanyname.dummyapp.Когда приложение регистрируется для push-уведомлений, на сервере Apple регистрируются идентификатор пакета приложения и токен устройства.

Вилли, последняя вещь, которую вы можете захотеть проверить, самый первый шаг при настройке push-уведомлений - этосоздание файла CertificateSigningRequest.certSigningRequest из диспетчера цепочки для ключей.Если у вас есть 2 приложения, вы должны выполнить этот шаг дважды, чтобы в итоге вы получили 2 разных файла, которые будут использоваться на портале Apple для создания файла SSL.cer.Ваша проблема может заключаться в том, что вы использовали один и тот же .certSigningRequest для создания разных файлов SSL.cer вместо использования другого.

4 голосов
/ 29 сентября 2011

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

В производственной среде (App Store) токен устройства будет уникальным для каждогоприложение, насколько я знаю.Но я не уверен на 100%.

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

...