Я знаю, что это немного переполнено проблемами службы push-уведомлений Apple (APN) по всему StackOverflow, поэтому я действительно провел много исследований, прежде чем задать свой вопрос.
В основном, я следил за созданием сертификата apns-php , некоторым учебником, например по mobiforge , и некоторым из Matthijs Hollemans . Тем не менее, я не могу получить уведомление на свой iPad 2.
В основном это шаги, которые я сделал:
server_certificates_bundle_sandbox .pem
, entrust_root_certification_authority.pem
. Следуя руководству, описанному в блоге mobiforge , я успешно создал идентификатор приложения, профиль обеспечения и красиво связал их вместе.
Затем я включаю сертификат Development Push SSL (только для сейчас), используя тот же запрос сертификата, который я использовал только что для получения сертификатов, я загружаю его и устанавливаю в свою связку ключей.
Я загрузил свой профиль обеспечения в файл .mobileprovision
и загрузил его в Xcode Organizer на своем устройстве iPad 2.
Затем я создаю простое приложение только с этими кодами:
- (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 (@ "Ошибка:% @", ошибка);
}
Затем я настраиваю параметры сборки:
Я создаю и запускаю приложение на своем iPad 2. Мое приложение запрашивает push-уведомление, и после того, как я его одобрил, в моей консоли появился идентификатор токена:
2012-01-19 12: 43: 26.345 TestAPN [578: 707]
Я использовал apns-php , изменил идентификатор устройства (необработанные 64 шестнадцатеричных значения), затем запустил sample_push.php
. Скрипт выполнен успешно, но мое устройство не получает никаких уведомлений
Затем я пытаюсь использовать SimplePush.php .Появилось сообщение «Сообщение успешно доставлено», но мой iPad по-прежнему не получает никаких уведомлений от APN
. Вопрос в том, какие шаги я сделал неправильно? Я новичок в этой области, и на самом деле для моего проекта требуется, чтобы сервер отправлял сообщения нашим собственным приложениям. Нам известно о стороннем программном обеспечении, которое отправляет APN от вашего имени, но мы хотели бы реализовать его сами.
Я также наткнулся на « APN Feedback Service » и написал это (на основе SimplePush), но, к сожалению, он пуст. Что мне теперь делать?
Примечание
Надеюсь, я не повторяю ни одного из вопросов здесь ..;)
ИЗМЕНИТЬ
Когда я запустил 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 ... хмм