当前位置:  开发笔记 > 编程语言 > 正文

Apple推送通知无法在生产中使用

如何解决《Apple推送通知无法在生产中使用》经验,为你挑选了0个好方法。

使用我在App Store上的应用程序,推送通知无效.我的应用程序在开发中,推送通知正在运行.

我想我应该通过Ad Hoc部署进行测试.无论如何,这就是我所知道的......

应用程序ID

我的App ID是com.MyName.My-App

它为开发和分发启用了推送通知

在此输入图像描述

APNs证书

我有开发和分发证书.这是我关心的Dist.

在此输入图像描述

它的名称为com.MyName.My-App

导出到PEM

我已经选择了Cert和私钥,并将其导出,如下所示:

在此输入图像描述

和密码保护它.

然后我跑了

openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

提供密码,并成功获取pushcert.pem输出.

正在下载App

我通过服务器端设备令牌为我的设备清除,我从应用程序商店下载我的应用程序,打开它并接受推送通知,然后登录到我的服务器以检查我的设备令牌.我现在有我的生产设备令牌.我运行这个简单的PHP脚本(当我提供我的开发设备令牌时可以工作)但是我的生产设备令牌失败了.

 $message,
    'sound' => 'default'
    );

// Encode the payload as JSON
$payload = json_encode($body);

// Build the binary notification
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;

// Send it to the server
$result = fwrite($fp, $msg, strlen($msg));

if (!$result)
    echo 'Message not delivered' . PHP_EOL;
else
    echo 'Message successfully delivered' . PHP_EOL;

// Close the connection to the server
fclose($fp);

它为什么失败?它适用于我的开发设备令牌,但不适用于我的生产设备令牌.我没有做正确的事吗?

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有