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

iOS: Send Push Notification from AWS SNS to APNS

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

我做了以下事情:

我刚刚在 CloudWatch 日志中收到此错误:

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

我已经经历了几次这个过程,创建了新证书,尝试使用旧证书,多次重新安装应用程序等等。我什至 运行 跨越 this issue of the Apple CA certificate expiring today看到我的钥匙串上的大部分证书都显示为红色,并显示消息“此证书有一个无效的颁发者”,但根据 Apple 的说法,显然这不应该是一个问题(以上也不适用于昨天)。

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

我缺少什么?

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

更新:

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

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

It could be that I'm trying with the "production" certificate but on an app Im' building from Xcode? Isn't this new certificate supposed to work for both the Sandbox/dev and production version?

简单来说...不是真的。您可以 尝试完成它,但它变得很奇怪。您必须创建一个临时分发并将其加载到您的 phone 上才能使其正常工作。每次单击 Xcode 中的 运行 时,它 运行 是 发布 证书(又名 开发配置文件 除非你在方案设置中改变了这一点。你不能运行具有开发证书的生产APNS。

扩展 - 生产推送通知证书 匹配 分发临时配置文件 - 沙盒推送通知证书 用于开发者临时配置文件

从 Xcode 到您的 phone 运行 的任何 运行 开发者资料,沙盒证书除外。单击 存档 后,您 应该 中为存档设置 分发 管理方案 设置