APNS les Notifications Push ne fonctionne Pas sur la Production

J'ai créé une Application pour envoyer des notifications à distance à partir d'un serveur web.
Quand j'ai testé l'Application, le Mode de Développement toutes les notifications arrivé correctement sur le téléphone, après l'AppStore version de l'application n'a pas reçu de notifications plus.

Ici, c'est ce que j'ai fait:

  1. Créé une Clé Privée Pour la Production et un pour le développement.
  2. Généré sur mon ID de l'Application de deux Certificats SSL en passant par le précédent CertFile Généré. Je suis à 100% sûr d'avoir correctement généré 2 clés et les a transmises correctement pour télécharger le certificat SSL de Dev Center sous AppID.
  3. Créé un fichier .pem pour le développement et l'autre pour la production (par la conversion du fichier .p12 extrait de mon Trousseau, etc etc).
  4. Créé 2 profil de configuration pour un développement et un pour la production raccordée au AppID de l'étape 1.
  5. Signé de l'app dans les Paramètres de construction avec les bons Profils de configuration créé à l'étape 4.
  6. Créé une Application Web pour capturer et stocker les utilisateurs Jetons.
  7. Créé une page php de test d'Envoi de notifications Push.

Ici, c'est ce que j'ai testé:

  1. Testé le développement généré .fichier pem avec telnet sur le sandbox de lien avec un vrai succès de réponse.
  2. Testé la production générée .fichier pem avec telnet sur la production de lien avec un vrai succès de réponse.
  3. Je suis sûr à 100% d'avoir stocké sur mon application web le développement de la marque de mon iPhone.
  4. Je suis sûr à 100% d'avoir stocké sur mon web application server de la production, gage de mon iPhone.
  5. Je suis sûr à 100% de passer avec ma page php le bon message au Serveur Apple (à la fois pour le développement et la production).
  6. La page php qui retourne toujours un grand message de Serveur Apple (à la fois pour le développement et la production).

Ici est de savoir comment je signe l'application sur Xcode:

APNS les Notifications Push ne fonctionne Pas sur la Production
APNS les Notifications Push ne fonctionne Pas sur la Production
APNS les Notifications Push ne fonctionne Pas sur la Production
APNS les Notifications Push ne fonctionne Pas sur la Production

Voici le code de la page php pour envoyer des notifications:

    $ctx = stream_context_create();
//stream_context_set_option($ctx, 'ssl', 'passphrase', 'development_pwd');
//stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck_development.pem');
//$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); //test
stream_context_set_option($ctx, 'ssl', 'passphrase', 'production_pwd');
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck_production.pem');
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx); //production
echo "<p>Connection Open</p>";
if(!$fp){
echo "<p>Failed to connect!<br />Error Number: " . $err . " <br />Code: " . $errstrn . "</p>";
return;
} else {
echo "<p>Sending notification!</p>";    
}
$i = 0;
foreach ($deviceToken as $dt) {
$dt = str_replace(' ' , '' , $dt);
$msg = chr(0) . pack('n',32) . pack('H*', $dt) . pack('n',strlen($payload)) . $payload;
echo "<p>" . $i . " - Message sent: " . $payload . "<br />Token: ". $dt . "<br />***" . $msg . "***</p>";
$result = fwrite($fp, $msg, strlen($msg));
$i++;
if (!$result)
echo '<p>Message not delivered ' . PHP_EOL . '!</p>';
else
echo '<p>Message successfully delivered ' . PHP_EOL . '!</p>';
}
fclose($fp);
echo "<p>Total Notifications Sent: " . $i . "</p>";
echo "<p>Connection Closed!</p>";
}
?>

Conclusions:
J'ai l'Appli de Test sur mon PC qui reçoivent des APNS de Notifications Push.
J'ai exactement le même application publiée sur l'App Store que de ne pas recevoir des APNS de Notifications Push.

J'ai vraiment fait tout ce qui est en mon pouvoir pour résoudre ce problème et lire les milliers de pages de forums, stackoverflow et Apple Documentations.

Je suis prêt à retribuite à chacun de vous qui m'aide à trouver la solution à mon problème!

  • Pour votre info, le script PHP renvoie le Message "livré avec succès", même si le jeton est incorrect ou a expiré.
  • Dois-je créer deux .la rse fichiers pour la Production & Développement ?
InformationsquelleAutor prelite | 2014-03-28