APNS PHP Push Notification no funciona. Se agota el time

Estoy tratando de enviar notifications Push en el entorno de producción, pero no funciona. A continuación se muestra el código que estoy intentando y se agota el time. Sin error, no se eliminan excepciones. ¿Qué hay de malo en esto?

Nota: cuando envío notifications push utilizando Sandbox ( ENVIRONMENT_SANDBOX ) y los files de certificate de desarrollo, funciona. Sin embargo, los files de certificate de producción y ENVIRONMENT_PRODUCTION no funcionan.

 <?php error_reporting(E_ALL); ini_set('display_errors', 1); /** * @param string $device_token unique device token * @param string $custom_message message that needs to be pushed * @param string $push_service which service to use ( ApnsPHP/UrbanAirship ) * * @return bool * @throws ApnsPHP_Exception * @throws ApnsPHP_Message_Exception * @throws ApnsPHP_Push_Exception * @throws Exception */ function send_apple_push_notification_test( $device_token, $custom_message, $push_service = 'ApnsPHP' ) { if ( empty( $device_token ) || empty( $custom_message ) ) { return false; } // Report all PHP errors error_reporting( -1 ); // Adjust to your time-zone date_default_timezone_set( 'America/New_York' ); // Using Autoload all classes are loaded on-demand require_once 'includes/ApnsPHP/Autoload.php'; try { // Instantiate a new ApnsPHP_Push object $push = new ApnsPHP_Push( ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, '/home/xxxxx/public_html/wp-content/themes/yyyyyy/includes/ApnsPHP-pem/AppPushNotify.pem' ); // Set the Root Certificate Authority to verify the Apple remote peer $push->setRootCertificationAuthority( '/home/xxxxx/public_html/wp-content/themes/yyyyyy/includes/ApnsPHP-pem/Entrust_Root_Certification_Authority.pem' ); // Connect to the Apple Push Notification Service $push->connect(); // Instantiate a new Message with a single recipient $message = new ApnsPHP_Message_Custom( (string) $device_token ); // Set a custom identifier. To get back this identifier use the getCustomIdentifier() method // over a ApnsPHP_Message object retrieved with the getErrors() message. $message->setCustomIdentifier( "xxxyyyzzz-" . time() ); // Set a simple welcome text $message->setText( (string) $custom_message ); // Play the default sound $message->setSound(); // Set the expiry value to 30 seconds $message->setExpiry( 60 ); // Set the "View" button title. $message->setActionLocKey( 'See the message.' ); // Add the message to the message queue $push->add( $message ); // Send all messages in the message queue $push->send(); // Disconnect from the Apple Push Notification Service $push->disconnect(); // Examine the error message container $aErrorQueue = $push->getErrors(); print_r( $aErrorQueue ); return true; } catch ( Exception $e ) { print_r( $e->getMessage() ); } return false; } echo "start"; send_apple_push_notification_test( '20fcc5090eb1f539ac0fddd345r4d0c50e5bca071b742d3d9833f16dd97adeb', 'Test Msg for Production' ); 

Para usar el entorno de producción, su aplicación debe estar firmada con su certificate de distribución. La única forma de probar esto es enviarlo a la App Store y download la versión de App Store de su aplicación; o use una compilation AdHoc. No puede usar el entorno de inserción de producción cuando su aplicación está firmada con su certificate de desarrollo.

Si ha hecho todo eso, asegúrese de que no está utilizando el mismo token de dispositivo para el entorno de producción que obtuvo del entorno de desarrollo. Ellos serán diferentes