ios - 无法设置一个 AWS SNS 来同时服务于开发 (APNS_SANDBOX) 和生产 (APNS)
问题描述
也许这不受 AWS 支持,但是,在 Apple Developer Console 上创建认证时,我选择了“Apple Push Notification service SSL (Sandbox & Production)”。我用这个认证建立了一个 SNS。如果我选中“用于沙盒中的开发”复选框,则通知将在通过 XCODE 而不是通过 testflight 编译应用程序时起作用,如果我使用此认证并取消选中此复选框,则通知将在 testflight 中起作用,但在 XCODE 中起作用。
我的印象是这种新型认证可以用于开发和生产,所以我有点困惑。似乎 AWS 知道我的应用程序是为开发还是生产而编译的。
有没有办法在 iOS 上设置一个用于开发和生产的 SNS?
解决方案
我今天刚刚和我的 AWS 团队一起经历了这个。(我是一名 iOS 开发人员,如果我没有使用正确的 AWS 术语,请原谅我。希望它足够接近。)
新证书可用于沙盒和生产。但是,必须为每个端点创建一个 AWS SNS 端点 (ARN?) 。正如您所说,如果您选中“用于沙盒中的开发”复选框,它将在从 Xcode 运行时开始工作,但它不适用于 TestFlight 应用程序。这是非此即彼的,不是两者兼而有之。
要使其正常工作,您需要创建两个SNS 端点。您可以为两个端点使用相同的“Apple Push Notification service SSL (Sandbox & Production)”APNS 证书,但只在其中一个中选中“用于沙盒中的开发”。
我不知道这是否适用于您的情况,但对于我的应用程序,我们的 AWS 团队在我们的设备注册 API 中添加了一个“开发”标志,以便他们最终区分是将通知发送到 APNS 还是 APNS_SANDBOX 端点。
推荐阅读
- git - 'git remote -v' 在本地删除不需要的存储库
- ruby - Ruby:如何判断一个对象是否是单例
- racket - 在 Racket 的迷你 kanren 库中,condi 在哪里?
- wordpress - 如何为我的 wordpress 网站创建一个真实的 ssl
- c - ESP-32 无法连接到 MQTT 代理:mqtt_client: Error network response
- vb.net - 如何在没有参数的情况下获取 .exe 的目录 VB.NET
- java - 在java中填充泛型数组
- javascript - 从函数获取返回值的问题
- javascript - 在订阅中更改变量不会显示在数据绑定中
- c - 可以在 C 中添加非常大的数字但不能添加小数字