iOS推送通知仅由开发设备接收

时间:2019-04-13 19:57:56

标签: ios swift push-notification apple-push-notifications

我有一个应用程序,它可以发送一些推送通知,实际上,所有功能都像超级按钮一样,并且推送通知可以被我的设备毫无问题地接收到。

我在开发时遵循here的说明,并使用pushok库来开发服务器端。

但是我意识到其他设备都没有收到我的通知;只有我注册为开发设备的设备才能收到它们。

Device tokens是正确的,无论是通过Xcode通过USB运行应用程序,还是通过AppStore安装都给出了相同的令牌,但仅适用于我的设备。

你有个主意吗?

更新

我正在使用针对APNS的身份验证令牌,而不是基于证书的身份验证,因此没有生产或沙箱选项。但是我只能收到开发设备以外的东西。

2 个答案:

答案 0 :(得分:1)

请确保您为不同的配置使用了正确的APNS证书。

在开发设备中运行的应用将处于调试配置,其APNS证书将指向 gateway.sandbox.push.apple.com

Appstore将处于发布配置,其APNS证书将指向 gateway.push.apple.com ,而不是沙盒。

所以,请检查您的证书。

NWPusher是用于仅使用cert和deviceTokens而不使用任何代码来测试推送通知的出色工具。希望对您有帮助。

答案 1 :(得分:0)

我发现了问题;如问题的更新部分所述,我没有使用基于证书的APNS,因此沙箱或生产证书不是问题。我为APNS使用了Auth Token Key,并且沙盒或生产之间没有任何区别。

pushok库旁边,有一个生产或沙箱标志,我在沙箱中错过了并忘记了该标志。当我重新检查pushok的文档时,我看到了下面的代码

$client = new Client($authProvider, $production = false);

更改为$production = true解决了我的问题。