iOS:从AWS SNS向APNS发送推送通知

时间:2016-02-14 21:20:57

标签: ios objective-c amazon-web-services apple-push-notifications amazon-sns

我的AWS SNS已停止向iOS上的订阅者发送推送通知,我正在尝试了解原因。所以我从头开始,目的是向我的测试设备发送1个通知。

我做了以下事情:

  • new "Apple Push Services"类型的iOS开发门户上创建新证书,而不是旧的“APNs iOS Production”,导入到钥匙串,导出的证书和私钥,并按照in the AWS SNS APNS instructions所述将其添加到AWS。
  • 确认此新APNS证书显示在门户网站上我的应用程序ID中的“生产SSL证书”列表中。
  • 在AWS SNS中创建“iOS制作”应用程序并加载上述凭据。
  • 为我的测试设备构建应用程序,订阅通知,获取令牌并剥离所有空格等,并使用该令牌在AWS SNS上创建新的端点。
  • 选择该单个端点并向其发送消息。

我刚刚在CloudWatch Logs中收到此错误:

"providerResponse": "NotificationErrorResponse(command=8, status=InvalidToken, id=1, cause=null)"

我已经完成了几次这个过程,创建了新证书,尝试了旧证书,多次重新安装了应用程序等等。当我看到大多数证书时,我甚至跑过this issue of the Apple CA certificate expiring today我的钥匙串显示为红色,并显示“此证书有无效的发行人”,但显然这不应该是苹果公司的问题(上述情况也是如此)。

我觉得我已经用尽了我在这里可以做的研究。

我错过了什么?

或者我该如何调试呢?我使用我可以成功“ssh”到APN服务器的凭据,有没有办法交互式地找出那里的东西?

更新

可能是我正在尝试使用“生产”证书但是在使用Xcode构建的应用程序中?这个新证书不适用于Sandbox / dev和生产版本吗?

1 个答案:

答案 0 :(得分:2)

回答这个问题的最直接方法是回答这个问题:

  

可能是我正在尝试使用“生产”证书但是在使用Xcode构建的应用程序中?这个新证书不适用于Sandbox / dev和生产版本吗?

简单来说......不是真的。你可以尝试将其关闭,但这很奇怪。您必须创建一个临时分发并将其加载到手机上才能使其正常工作。每次单击在Xcode中运行时,它都会运行发布证书(AKA 开发配置文件除非您已在方案设置中更改了此项。您无法使用开发证书运行生产APNS。

要展开 - 生产推送通知证书分发临时配置文件匹配 - 沙箱推送通知证书适用于开发人员临时档案

从Xcode运行到手机的任何内容都会运行开发人员个人资料,除沙箱证书外。点击存档后,