Testflight - 通用推送通知客户端 SSL 证书 - BadDeviceToken

Posted

技术标签:

【中文标题】Testflight - 通用推送通知客户端 SSL 证书 - BadDeviceToken【英文标题】:Testflight - Universal Push Notification Client SSL Certificate - BadDeviceToken 【发布时间】:2016-10-14 13:35:45 【问题描述】:

我打算在使用 TestFlight 时测试我的推送通知。

当我从 Xcode 直接部署到设备时,我可以在设备上成功接收推送通知。但是,当我通过 TestFlight(作为外部测试人员)将应用程序部署到设备时,我得到“BadDeviceToken”。

我创建了一个“通用推送通知客户端 SSL 证书”,并按照these Apple 的说明进行操作(我认为)。根据链接:

“生成的客户端 SSL 证书是一个通用证书,允许您的应用连接到开发生产环境。”

有人有什么想法吗?

谢谢

仅供参考:

相关应用服务:

iOS 证书:

【问题讨论】:

如何发送通知?是什么让您出现“BadDeviceToken”错误? 出于测试目的,我通过单元测试发送通知。我正在使用pushy。我将应用安装后返回的令牌复制到测试中。 【参考方案1】:

好的,这是我的愚蠢错误。我正在使用Pushy。

您可以这样指定环境:

apnsClient.connect(ApnsClient.PRODUCTION_APNS_HOST);

不幸的是,我之前指定了 DEVELOPMENT_APNS_HOST。看起来,当您使用 TestFlight 时,您必须指定生产 apns 主机。

感谢所有查看问题并回答的人。

【讨论】:

【参考方案2】:

您应该尝试从头开始重新创建证书。确保证书是生产/分发的,而不是使用 APNS 沙箱。此外,请确保它在实际批准的设备上,而不是模拟器上。

来自 APNS 文档:

指定的设备令牌错误。验证请求是否包含 一个有效的令牌并且该令牌与环境匹配

另外,看看这两个链接(第一个是旧的):

iPhone APNS Device Tokens in sandbox vs. production

https://salesforce.stackexchange.com/questions/119615/send-push-notifications-to-ios-using-apns

【讨论】:

谢谢杰克。我创建了一个“通用”证书,根据here 可用于“开发生产环境”。一定是遗漏了什么……?将通过链接查看。

以上是关于Testflight - 通用推送通知客户端 SSL 证书 - BadDeviceToken的主要内容,如果未能解决你的问题,请参考以下文章

TestFlight 后无法从 Firebase 获得推送通知

在 TestFlight 中测试推送通知

推送通知在 TestFlight 上不起作用

在发布版本上推送通知工作,但在上传到 TestFlight 之后没有

无法接收从 Pushwoosh 到 TestFlight 分布式应用程序的推送通知

推送通知在 Apple Beta 测试 (TestFlight) 中不起作用