iOS 推送通知仅由开发设备接收
Posted
技术标签:
【中文标题】iOS 推送通知仅由开发设备接收【英文标题】:iOS Push Notifications Only Received By Development Devices 【发布时间】:2019-04-13 19:57:56 【问题描述】:我有一个发送一些推送通知的应用程序,实际上一切都像魅力一样工作,我的设备可以毫无问题地接收到推送通知。
我按照here 的说明进行开发,并使用pushok
库开发服务器端。
但我意识到其他设备没有收到我的通知;只有我注册为开发设备的设备才能接收它们。
Device tokens
是正确的,无论是通过 USB 从 Xcode 运行应用程序还是从 AppStore 安装都提供相同的令牌,但它只适用于我的设备。
你有什么想法吗?
更新
我正在为 APNS 使用身份验证令牌,而不是基于证书的身份验证,因此没有生产或沙盒选项。但除了开发设备,我仍然无法接收。
【问题讨论】:
如果以下回答解决了您的问题,请采纳。 【参考方案1】:请确保您为不同的配置使用正确的 APNS 证书。
在开发设备中运行的应用程序将处于调试配置中,其 APNS 证书将指向 gateway.sandbox.push.apple.com
Appstore 将处于发布配置中,其 APNS 证书将指向 gateway.push.apple.com 而不是沙盒。
所以,请检查您的证书。
NWPusher 是一个出色的工具,用于测试推送通知,仅使用 cert 和 deviceTokens,无需任何代码。希望对你有帮助。
【讨论】:
抱歉,我必须删除正确答案标记,因为如果您查看我提到的文章,我没有使用基于证书的身份验证。我正在使用 Auth Token,所以没有生产或沙盒选项。 不要感到抱歉。没有问题。 :-)【参考方案2】:我发现了问题;如问题的更新部分所述,我没有使用基于证书的 APNS,因此沙箱或生产证书不是问题。我使用的是 APNS 的 Auth Token Key,沙盒和生产之间没有任何区别。
除了pushok
库还有一个生产或沙箱标志,我在沙箱中错过并忘记了。当我重新检查 pushok 的文档时,我看到了下面的代码
$client = new Client($authProvider, $production = false);
更改为 $production = true
解决了我的问题。
【讨论】:
以上是关于iOS 推送通知仅由开发设备接收的主要内容,如果未能解决你的问题,请参考以下文章