Сервис Уведомления о Нажатии Apple APNS - Уведомления, не прибывающие

Я пытаюсь добавить уведомления о нажатии своему приложению. Я имею, использую специальный профиль. Мой appID не имеет подстановочного знака. Я использую следующий код php...

$deviceToken="****";masked
$time = time();

 $apnsHost = 'gateway.sandbox.push.apple.com'; 

$apnsPort = 2195;
$apnsCert = 'apns-dev-maui.pem';

$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
if($apns)
{
echo "Connection Established<br/>";
$payload = array();
$payload['aps'] = array('alert' => 'It works!!', 'badge' => 1, 'sound' => 'default');
$payload = json_encode($payload);
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;

        print "sending message :" . $apnsMessage . "<br/>";
        print "sending payload :" . $payload . "<br/>";
        fwrite($apns, $apnsMessage);

}
else
{       
        echo "Connection Failed";
        echo $errorString;
        echo $error;
}
// socket_close($apns);
fclose($apns);

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

Я получил deviceTokens от консоли организатора и команды NSLog. Уведомления для этого приложения обнаруживаются в моем меню параметров.

У меня есть 3G ATT и старый 2G, который я использую в качестве iPod. Никакая работа.

Без ошибок посмотреть на, я вне идей. У кого-либо есть понимание?

Jennifer

7
задан Remus Rusanu 18 February 2010 в 23:59
поделиться

2 ответа

Я наконец-то понял, в чем дело. Я использовал Sandbox с профилем обеспечения AdHoc. Ad Hoc, очевидно, считается производственным, а не разработкой. Я создал сертификат push production, установил его и вуаля! Все работает.

24
ответ дан 6 December 2019 в 06:03
поделиться

Мапс ответил правильно. Я хотел добавить дополнительную ситуацию, в которой была та же проблема (на случай, если это будет полезно кому-то еще). У меня была настройка push, и она работала ровно на 1 iphone (не на других). Это очень озадачивало.Проблема заключалась в том, что на 1 работающем iphone была установлена ​​«отладочная» версия программы, а на других была установлена ​​«специальная» версия. Наш сервер APNS был настроен на использование сертификата «разработки» и gateway.sandbox.push.apple.com

. Я изменил сертификат на сервере на «производственный» сертификат, а на хосте — на gateway.push.apple.com

(затем удалили все профили обеспечения на всех устройствах и установили «специальную» версию программы)

И все было готово.

6
ответ дан 6 December 2019 в 06:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: