Как проверить, что в профиле обеспечения распространения iOS включены push-уведомления? - PullRequest
11 голосов
/ 05 января 2012

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

Однако на моем iPad я могу получать push-уведомления из этого приложения, и оно отображается в моих Настройках> Уведомления. Я удалил и переустановил приложение, чтобы убедиться, что у меня есть то же самое, что и у всех остальных (а не версия для разработчиков), и я все еще могу получать уведомления.

Теперь, это приложение было написано для клиента, который отправил мне все профили инициализации (dev, adhoc, distribution), а также файлы, необходимые для отправки push-уведомлений, поэтому я не могу точно знать, что все был правильно создан.

Моя теория сейчас такова:

  • профиль adhoc, который я получил, был «правильно создан» (т. Е. Сгенерирован после настройки APN для идентификатора приложения в портале Provisioning Portal)
  • профиль распространения , который я получил, был сгенерирован перед настройкой APN для этого приложения (и, следовательно, он не «включен»)
  • причина, по которой я могу получать push-уведомления на своем устройстве, заключается в том, что во время разработки я установил версию adhoc , которая запрашивала у меня разрешения на получение push-уведомлений, и хотя я это удалил adhoc version и скачал версию из магазина, устройство «кеширует» тот факт, что я готов получать уведомления и больше не запрашивает у меня это . Я проверил другие приложения и, действительно, после их удаления и переустановки они больше не будут запрашивать у меня разрешения на получение push-уведомлений.

Итак, мои вопросы:

  • Имеет ли эта теория смысл?
  • Если это так, это означает, что мне придется попросить клиента сгенерировать новый профиль обеспечения распространения. Как я могу убедиться, что этот профиль "включен"? (т.е. учитывая, что я не могу просто установить приложение, скомпилированное с ним)

Ответы [ 4 ]

23 голосов
/ 05 января 2012

Хорошо, возможно, я нашел способ проверить, включена ли в профилях функция push.

Если я открою файл .mobileprovision в виде текстового файла, там будет немного XML (очевидно, plist), который, я предполагаю, для профиля распространения должен иметь следующее:

<key>aps-environment</key>
<string>production</string>

И действительно, профиль adhoc имел это, а профиль распределения - нет, так что ... я предполагаю, что это была проблема.

Тем не менее, любая обратная связь будет полезна:)

7 голосов
/ 25 октября 2012

Немного отличается, но все же полезно: когда вы загружаете приложение в iTunes connect, вы можете проверить, включены ли в нем Push-уведомления (или любые другие права).

Для этого перейдите в раздел Управление приложениями.выберите приложение, затем перейдите к «View Details» для версии, которую вы хотите проверить.

Оттуда перейдите на страницу «Binary details» - есть поле «Права», которое показывает, какие права имеет двоичный файл,Если Push-уведомления включены, вы увидите строку "aps-environment: production" там.

0 голосов
/ 07 февраля 2014

Я добавил следующее к AppDelegate.m , чтобы я мог точно видеть, какие настройки были включены в отладке

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
  UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
NSLog(@"Receiving Notification Types: %lu", (long)enabledTypes); //0=none 1=badge 2=sound 4=alert 8=NewsStandContantAvailability

Я получил это по очень содержательной и полезной ссылке: Учебное пособие по Apple Push Notification Service - часть 1 это было чрезвычайно полезно для меня.

0 голосов
/ 25 августа 2013

Убедитесь, что профиль обеспечения распространения генерируется после создания aps_certificate. Высокие изменения в профиле могут пропустить aps-environment

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