搞砸了苹果推送通知服务


Messing up the Apple Push Notification Service

我一直在开发一个使用推送通知的应用程序。我一直在乱折腾ALOT,试图解决愚蠢的供应问题,我真的不知道是什么了。

我设法修复了整个开发推送通知。现在,我们即将发布。然而,切换到生产通知并没有像预期的那样顺利。我仍然不太了解整个资源调配过程。

我想我只需要用一个新的.cer和.p12文件生成的新文件来切换.pem文件,并从它试图连接的url中删除"沙盒"。这只会导致我的.php发送推送时出现"连接失败:0"。

.php

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'dp.pem')
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client(
    'ssl://gateway.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if(!$fp)
    exit("Failed to connect: $err $errstr" . PHP_EOL);

在摆弄了.p12和.cer、.cert、.pem和.mobileprovision.ipa之后,我真的不知道该怎么办了。。为什么我们必须转换为.pem并合并它们?这真的是苹果想要我们这样做的方式吗?或者我一直在遵循一个漂亮的redicolus教程?

我需要什么.cer文件?应用程序应该使用哪个配置文件?AppID与供应、设备与证书。他妈的。。除了切换到一个新的.pem文件并删除"沙箱"之外,我还应该做其他事情吗。我已经从门户网站激活并下载了"生产推送SSL证书",并由此生成了我的.pem文件。我试着读过这个,但它真的很难,而且是一个愚蠢的设置!我确信我做错了什么。但是搞不清楚是什么,在哪里,为什么!

推送通知服务-很棒的教程,您将找到php脚本+所有问题的答案。