pre*_*ite 22 xcode push apple-push-notifications ios
我创建了一个应用程序来从Web服务器发送远程通知.当我在开发模式下测试应用程序时,所有通知都在手机上正确到达,在AppStore发布后,应用程序不再收到通知.
这就是我做的:
这是我测试的:
以下是我在Xcode上签署应用的方式:

这是发送通知的php页面的代码:
$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>";
}
?>
Run Code Online (Sandbox Code Playgroud)
结论:我的PC上有测试应用程序,可以接收APNS推送通知.我在App Store上发布的完全相同的应用程序没有收到APNS推送通知.
我真的竭尽全力解决这个问题并阅读了大约数千页的论坛,stackoverflow和Apple Documentations.
我愿意帮助我帮助我找到问题解决方案的每个人!
| 归档时间: |
|
| 查看次数: |
20610 次 |
| 最近记录: |