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

iOS Push Notifications Only Received By Development Devices

我有一个发送一些推送通知的应用程序,实际上一切正常,我的设备接收推送通知没有任何问题。

我在开发时按照说明 here 并使用 pushok 库来开发服务器端。

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

Device tokens 是正确的,运行 通过 USB 从 Xcode 应用程序或从 AppStore 安装给出相同的标记,但它只适用于我的设备。

你有什么想法吗?

更新

我正在为 APNS 使用 Auth Token,而不是基于证书的身份验证,因此没有生产或沙盒选项。但是除了开发设备我还是收不到。

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

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

A​​ppstore 将采用发布配置,其 APNS 证书将指向 gateway.push.apple.com 而不是沙盒化证书。

所以,请检查您的证书。

NWPusher 是一个非常好的工具,用于测试推送通知仅使用证书和 deviceTokens 而无需任何代码。希望对你有帮助。

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

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

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

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