为什么我没有收到连接到 Xcode 调试器的调试版本的 iOS 推送通知?
Why don't I receive iOS Push Notifications with a debug build connected to Xcode debugger?
当我使用 CI 机器构建的 TestFlight 版本测试应用程序时,设备会收到推送通知。
但是当我在 Xcode 本地重建应用程序并连接调试器时,设备没有收到任何推送通知。
为了进一步验证,我再次在本地使用 push notifications tester 进行了测试,设备确实收到了推送通知。
所以代码没有被省略,因为它是 #DEBUG 版本,因为授权和注册通过了。
我的本地构建可能缺少什么?
当您在本地调试构建应用时,您的应用将生成一个唯一的设备令牌,该令牌不会接收生产推送通知。当您使用分发配置文件构建您的应用程序时,它会生成一个在生产环境中有效的不同设备令牌。
Apple 将拒绝开发设备令牌,除非您使用 APNS 沙盒证书专门请求推送通知。
因此,如果您还没有,则必须重新完成证书创建过程,但这次是沙盒证书,请改用该证书。
最终解决方案是我们的 Houston gem 服务器需要将其 APNS 支持配置为 development
模式,而不是production
模式。
当我使用 CI 机器构建的 TestFlight 版本测试应用程序时,设备会收到推送通知。
但是当我在 Xcode 本地重建应用程序并连接调试器时,设备没有收到任何推送通知。
为了进一步验证,我再次在本地使用 push notifications tester 进行了测试,设备确实收到了推送通知。
所以代码没有被省略,因为它是 #DEBUG 版本,因为授权和注册通过了。
我的本地构建可能缺少什么?
当您在本地调试构建应用时,您的应用将生成一个唯一的设备令牌,该令牌不会接收生产推送通知。当您使用分发配置文件构建您的应用程序时,它会生成一个在生产环境中有效的不同设备令牌。
Apple 将拒绝开发设备令牌,除非您使用 APNS 沙盒证书专门请求推送通知。
因此,如果您还没有,则必须重新完成证书创建过程,但这次是沙盒证书,请改用该证书。
最终解决方案是我们的 Houston gem 服务器需要将其 APNS 支持配置为 development
模式,而不是production
模式。