我有一个应用程序,它可以发送一些推送通知,实际上,所有功能都像超级按钮一样,并且推送通知可以被我的设备毫无问题地接收到。
我在开发时遵循here的说明,并使用pushok
库来开发服务器端。
但是我意识到其他设备都没有收到我的通知;只有我注册为开发设备的设备才能收到它们。
Device tokens
是正确的,无论是通过Xcode通过USB运行应用程序,还是通过AppStore安装都给出了相同的令牌,但仅适用于我的设备。
你有个主意吗?
更新
我正在使用针对APNS的身份验证令牌,而不是基于证书的身份验证,因此没有生产或沙箱选项。但是我只能收到开发设备以外的东西。
答案 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
解决了我的问题。