如何为推送通知安装ssl证书?

时间:2013-03-20 13:36:48

标签: ios certificate push-notification

我的ios应用推送通知系统存在问题:它在开发中完美运行,但在生产中无效。 现在我怀疑了。这里https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ProvisioningDevelopment/ProvisioningDevelopment.html 我读到pem证书必须“安装”在服务器上。

在开发过程中,我只将开发.pem复制到发送推送通知的php脚本的同一目录上,并让脚本使用它。在生产中(我的应用程序在应用商店中存在)我必须以某种方式“安装”服务器上的分发.pem?

注意:要确认所有内容都以正确的方式执行:

   $fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
 if(!$fp){
     print "All ok!";
 }

    $msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack        ("n",strlen($payload)) . $payload;
    print "sending message :" . $payload . "n to device:".$deviceToken."</br>";
    $result=fwrite($fp, $msg);
    if (!$result)
        print "All ok!":
}

即使在制作中,两人也没有发现任何错误。

1 个答案:

答案 0 :(得分:0)

您不需要在服务器上复制ssl证书,并从脚本中引用它以进行安装。

我的问题是,在包含发送通知的设备令牌的数据库中,我的开发设备生成了一些设备令牌。如果您将开发令牌发送到生产Apple服务器,它会终止连接,从而避免您在同一连接上发送任何其他通知。非常感谢苹果服务器!