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 之后没有