Apple Push Notification не доставляется

Я знаю, что это немного переполнено проблемами службы push-уведомлений Apple (APN) по всему StackOverflow, поэтому я действительно провел много исследований, прежде чем задать свой вопрос.

В основном, я следил за созданием сертификата apns-php , некоторым учебником, например по mobiforge , и некоторым из Matthijs Hollemans . Тем не менее, я не могу получить уведомление на свой iPad 2.

В основном это шаги, которые я сделал:

  1. Я выполнил руководство CertificateCreation , я вышел с server_certificates_bundle_sandbox .pem , entrust_root_certification_authority.pem .
  2. Следуя руководству, описанному в блоге mobiforge , я успешно создал идентификатор приложения, профиль обеспечения и красиво связал их вместе.

    • Описание: APNTest
    • Bundle Seed ID: Use Team ID
    • Bundle Identifier: com.learn.APN
  3. Затем я включаю сертификат Development Push SSL (только для сейчас), используя тот же запрос сертификата, который я использовал только что для получения сертификатов, я загружаю его и устанавливаю в свою связку ключей.

  4. Я загрузил свой профиль обеспечения в файл .mobileprovision и загрузил его в Xcode Organizer на своем устройстве iPad 2.

  5. Затем я создаю простое приложение только с этими кодами:

     - (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions
    {
     [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
     // Точка переопределения для настройки после запуска приложения.
    вернуть ДА;
    }
    
    - (void) application: (UIApplication *) application didRegisterForRemoteNotificationsWithDeviceToken: (NSData *) deviceToken
    {
    NSLog (@ "% @", deviceToken);
    }
    
    - (void) application: (UIApplication *) application didFailToRegisterForRemoteNotificationsWithError: (NSError *) error
    {
    NSLog (@ "Ошибка:% @", ошибка);
    }
    
  6. Затем я настраиваю параметры сборки:

    • Targets> Info> Build Identifier: net.learn.APN
    • Targets> Build Settings> Code Signing Identity> (я выбрал профиль обеспечения, который я только что установил теперь, и он автоматически выбирает идентичные профили для моей отладки и выпуска)
  7. Я создаю и запускаю приложение на своем iPad 2. Мое приложение запрашивает push-уведомление, и после того, как я его одобрил, в моей консоли появился идентификатор токена:

     2012-01-19 12: 43: 26.345 TestAPN [578: 707] 
    
  8. Я использовал apns-php , изменил идентификатор устройства (необработанные 64 шестнадцатеричных значения), затем запустил sample_push.php . Скрипт выполнен успешно, но мое устройство не получает никаких уведомлений

  9. Затем я пытаюсь использовать SimplePush.php .Появилось сообщение «Сообщение успешно доставлено», но мой iPad по-прежнему не получает никаких уведомлений от APN

. Вопрос в том, какие шаги я сделал неправильно? Я новичок в этой области, и на самом деле для моего проекта требуется, чтобы сервер отправлял сообщения нашим собственным приложениям. Нам известно о стороннем программном обеспечении, которое отправляет APN от вашего имени, но мы хотели бы реализовать его сами.

Я также наткнулся на « APN Feedback Service » и написал это (на основе SimplePush), но, к сожалению, он пуст. Что мне теперь делать?

Примечание

  1. Я знаю о различиях между сертификатами разработки / производства.
  2. iPad не взломан, на нем установлена ​​iOS 5.0.1
  3. Другие приложения App Store получают уведомления нормально
  4. XCode 4.2.1, Lion 10.7.2

Надеюсь, я не повторяю ни одного из вопросов здесь ..;)

ИЗМЕНИТЬ

Когда я запустил php simplepush.php , затем php feedback.php , я получил отзыв с идентификатором моего устройства. Мое приложение все еще находится в iPad, значит ли это, что у меня неправильный идентификатор устройства?

[root@ip-xx-xx-xx-xx SimplePush]# php feedback.php
Connected to APNS
array(3) {
  ["timestamp"]=>
  int(1326962028)
  ["length"]=>
  int(32)
  ["devtoken"]=>
  string(64) "3cb086129392996b5332d2fc5adce03d994f8959d7a2ac38de7bed52c8e0778e"
}

Спасибо

ИЗМЕНИТЬ

После долгих усилий и повторения всех шагов, написанных Маттейсом Холлемансом , я наконец заставить его работать. Итак, проблема заключается в сгенерированном неверном файле PEM ... хмм

9
задан Srikar Appalaraju 29 November 2012 в 03:18
поделиться