0

我一直在开发一个使用推送通知的应用程序。我一直在搞乱很多试图修复愚蠢的配置的东西,我真的不知道什么是什么了。

我设法修复了整个开发推送通知。而现在,我们即将发布。但是,切换到生产通知并没有预期的那么顺利。而且我仍然不太了解整个配置的事情。

我以为我只需要用新的 .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 并合并它们?这真的是 Apple 打算让我们这样做的方式吗?还是我一直在关注一个漂亮的 redicolus 教程?

我需要什么 .cer 文件?该应用程序应使用哪个配置文件?AppID vs 配置 vs 设备 vs 证书。到底是什么.. 除了切换到新的 .pem 文件并删除“沙箱”之外,我是否还需要做任何事情。我已经从门户激活并下载了“生产推送 SSL 证书”,并从中生成了我的 .pem 文件。我已尝试阅读此内容,但它非常困难且设置愚蠢!我确定我做错了什么。但无法弄清楚是什么,在哪里以及为什么!

4

1 回答 1

0

推送通知服务- 很棒的教程,你会发现你所有问题的 php 脚本 + 答案。

于 2012-09-04T19:45:00.380 回答