首页 > 解决方案 > 无法设置一个 AWS SNS 来同时服务于开发 (APNS_SANDBOX) 和生产 (APNS)

问题描述

也许这不受 AWS 支持,但是,在 Apple Developer Console 上创建认证时,我选择了“Apple Push Notification service SSL (Sandbox & Production)”。我用这个认证建立了一个 SNS。如果我选中“用于沙盒中的开发”复选框,则通知将在通过 XCODE 而不是通过 testflight 编译应用程序时起作用,如果我使用此认证并取消选中此复选框,则通知将在 testflight 中起作用,但在 XCODE 中起作用。

我的印象是这种新型认证可以用于开发和生产,所以我有点困惑。似乎 AWS 知道我的应用程序是为开发还是生产而编译的。

有没有办法在 iOS 上设置一个用于开发和生产的 SNS?

标签: iosamazon-web-servicesapple-push-notificationsamazon-sns

解决方案


我今天刚刚和我的 AWS 团队一起经历了这个。(我是一名 iOS 开发人员,如果我没有使用正确的 AWS 术语,请原谅我。希望它足够接近。)

新证书可用于沙盒和生产。但是,必须为每个端点创建一个 AWS SNS 端点 (ARN?) 。正如您所说,如果您选中“用于沙盒中的开发”复选框,它将在从 Xcode 运行时开始工作,但它不适用于 TestFlight 应用程序。这是非此即彼的,不是两者兼而有之。

要使其正常工作,您需要创建两个SNS 端点。您可以为两个端点使用相同的“Apple Push Notification service SSL (Sandbox & Production)”APNS 证书,但只在其中一个中选中“用于沙盒中的开发”。

我不知道这是否适用于您的情况,但对于我的应用程序,我们的 AWS 团队在我们的设备注册 API 中添加了一个“开发”标志,以便他们最终区分是将通知发送到 APNS 还是 APNS_SANDBOX 端点。


推荐阅读