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

时间:2018-03-08 20:59:14

标签: ios xcode apple-push-notifications

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

背景

  1. 使用Apple" dispatch"中的Apple的HTTP / 2 APNS端点时服务器,我的应用/设备接收推送,我收到Apple的BadDeviceToken回复。
  2. 使用完全相同的.p12证书和deviceTokenPusher macOS testing app(使用旧版APNS端点),推送成功传送。
  3. 使这进一步复杂化......

    1. 使用Apple" dispatch"中的Apple的HTTP / 2 APNS端点时服务器 PassKit 推送,我的通行证/设备 接收推送。
    2. 所以......

      第3点告诉我,我的"派遣"必须正确配置服务器,因为推送到Apple Wallet传递会导致响应(例如,我可以通过电子钱包/传递看到我的服务器终端的后续请求)。

      也就是说,Apple Wallet是" Production"应用程序。我怀疑,因为 我的 应用程序(来自Point#1)是非生产/开发,所以有些不同。

      问题

      是否有人能够成功接收 - 在Xcode中 - 发送到Apple的api.development.push.apple.com端点的推送通知?您能概述一下您执行的步骤(来自developers.apple.com的证书等)吗?谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

向生产服务器发送推送无法与开发版本一起使用 - 仅使用通过AppStore配置导出的版本,但您无法对其进行调试(至少不能使用Xcode)

如果您需要检查生产终点是否有效,可以使用testflight

答案 1 :(得分:1)

  1. 从Apple开发者门户网站设置开发证书。
  2. 使用生产/测试服务器与APNS通信。
  3. 按如下方式编辑目标方案:
  4. enter image description here

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