繁体   English   中英

使用APNS HTTP / 2测试开发中的推送通知

[英]Testing push notifications in development with APNS HTTP/2

我正在尝试确定针对APNS端点(例如,开发或生产),Xcode和Apple Push证书的组合需要做些什么,以便在开发过程中测试推送通知。 我觉得我已经尝试了所有可能的组合,但是我一定缺少一些东西...

背景

  1. 从我的“调度”服务器使用Apple的HTTP / 2 APNS端点时,我的应用程序/设备收到推送,并且我从Apple收到BadDeviceToken响应。
  2. Pusher macOS测试应用程序 (使用旧版APNS端点)中使用完全相同的.p12证书和deviceToken ,推送成功交付。

使这一问题更加复杂...

  1. 当从我的“分发”服务器使用Apple的HTTP / 2 APNS端点进行PassKit推送时,我的pass /设备确实收到了推送。

所以...

第3点告诉我,必须正确配置我的“调度”服务器,因为推送到Apple Wallet通行证会引起响应(例如,我可以看到从Wallet /通行证到服务器端点的后续请求)。

也就是说,Apple Wallet是“生产”应用程序。 我怀疑,因为我的应用程序(来自第1点)是非生产/开发的,所以有所不同。

有没有人能够在Xcode中成功接收发送到Apple的api.development.push.apple.com终结点的推送通知? 您能否概述执行的步骤( developers.apple.com等提供的证书)? 谢谢!

您应该能够从服务器发送开发推送:

您需要连接到api.development.push.apple.com:443,而不是api.push.apple.com:443。 您都可以使用生产证书。

将推送发送到生产服务器不适用于开发版本-仅适用于通过AppStore配置导出的版本,但您无法调试它们(至少不能使用Xcode进行调试)

如果需要检查生产端点是否正常工作,可以使用testflight

  1. 从Apple开发人员门户网站设置开发证书。
  2. 使用生产/测试服务器之一与APNS进行通信。
  3. 如下编辑目标方案:

在此处输入图片说明

这将确保当推送通知到达时,控件本身将落入代码中。 这似乎令人困惑。 但这是它的工作方式:
-在设备上安装应用,然后从Xcode停止运行过程。
-在didReceiveRemoteNotification上设置一个断点。
-向设备发送推送通知。
-Xcode本身将启动应用程序,控件将转到上述功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM