не удалось получить эти ошибки при запуске PHP в терминале как php simplepush.php
Warning: stream_socket_client(): Unable to set private key file `/users/accenture/Desktop/newAPNS/ck.pem' in /users/accenture/Desktop/newAPNS/simplepush.php on line 22 Warning: stream_socket_client(): failed to create an SSL handle in /users/accenture/Desktop/newAPNS/simplepush.php on line 22 Warning: stream_socket_client(): Failed to enable crypto in /users/accenture/Desktop/newAPNS/simplepush.php on line 22 Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /users/accenture/Desktop/newAPNS/simplepush.php on line 22 Failed to connect: 0
Я создал все сертификаты и файл pem с помощью статьи Raywenderlich, http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1#comments
Проблема в том, что файл pem был неправильным, я создал файл pem, используя http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 . Создание файла p12 и файла pem для создания p12 для меня не работают. Правильный процесс создания p12 и p12, создающий файл pem, как показано ниже.
После того, как у вас есть сертификат от Apple для вашего приложения, экспортируйте свой ключ и сертификат Apple в виде файлов p12. Вот краткое пошаговое руководство о том, как это сделать:
Теперь преобразуем файл p12 в файл pem:
$ openssl pkcs12 -in cert.p12 -out apple_push_notification_production.pem -nodes -clcerts
Это работает для меня, теперь я получаю push-уведомление.
Преобразование ключевого файла в pem рекомендуется в http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1, что вызывало проблемы для меня.
Бег
openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts
вместо
openssl pkcs12 -nocerts -out keyname.pem -in keyname.p12
решил мои проблемы.
Я следил за учебником по youtube, который почти такой же, как статья raywenderlich. Я только что забыл добавить фразу PEM pass. После добавления, как описано здесь , он работал:
stream_context_set_option($ctx, 'ssl', 'passphrase', 'MyPassPhrase');
Это решение для reywenderlich Apple Push Notification Services Tutorial
$deviceToken = ''; //Enter your token number // Put your private key's passphrase here: $passphrase = '1234';//Enter ck.pem 's password // Put your alert message here: $message = 'My first push notification!';