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

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

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

我做了以下事情:

  • new "Apple Push Services" 的 iOS Dev Portal 上创建新证书类型,而不是旧的“APNs iOS Production”,导入到钥匙串(keychain),导出证书和私钥,按照描述将它们添加到 AWS in the AWS SNS APNS instructions .
  • 确认这个新的 APNS 证书显示在门户上我的 App ID 的“生产 SSL 证书”列表中。
  • 在 AWS SNS 中创建“iOS Production”应用程序并加载上面的凭证。
  • 为我的测试设备构建应用程序、订阅通知、获取 token 并去除所有空格等,然后使用该 token 在 AWS SNS 上创建一个新端点。
  • 选择单个端点并向其发送消息。

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

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

我已经经历过几次这个过程,创建了新证书,尝试使用旧证书,多次重新安装应用程序等等。我什至遇到了 this issue of the Apple CA certificate expiring today。因为我看到我的钥匙串(keychain)上的大多数证书都显示为红色,并显示消息“此证书有一个无效的颁发者”,但显然根据 Apple 的说法,这不应该是一个问题(而且从昨天开始上述内容不起作用).

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

我缺少什么?

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

更新:

可能是我正在尝试使用“生产”证书,但我正在使用 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?

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

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

从 Xcode 到您的手机运行的任何东西都会运行开发人员配置文件,但沙盒证书除外。单击存档后 - 您应该管理方案设置中为存档设置分发

关于iOS:从 AWS SNS 向 APNS 发送推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398133/

相关文章:

ios - 从 Parse SDK 日期显示本地时间

iphone - NavigationController 中的 NavigationBar 未显示在 IB StoryBoard 中

ios - 在 UITableView 中点击已选定的单元格时,将调用 willSelectCellAtIndexPath

ios - 背景图像重叠刷新控件

java - AWS 源代码错误?

ios - UITableViewController swift 不同大小的高度与图像

ios - 如何为 NSNumbers 数组的数组定义 Objective-C 轻量级泛型?

iphone - 如何在单击时从通知列表中清除单个通知?

ios - Amazon SQS/SNS 策略错误

amazon-web-services - Cloudformation YAML 文件将脚本参数作为输入