我如何知道生产应用程序的APNS设备令牌?

注意:此解决方案适用于Xcode 8和iOS10。将来,获取按应用程序设备令牌的方法可能会有所不同。

我需要知道生产应用程序的设备令牌的原因是:“我想仅通过将通知推送到我的测试设备来测试更新的生产APNS证书。”

我通过谷歌搜索获得的大多数解决方案都是通过委托方法打印每个应用程序的设备令牌:

 应用程序(_:didRegisterForRemoteNotificationsWithDeviceToken :) 

但是,此解决方案根本不适用于生产应用程序。 您既不能附加到生产应用程序并在现场添加断点,也不能在此时添加代码(除非您已将这样的语句添加到生产应用程序中)。

有一种更简单的方法来获取设备令牌。 步骤如下

  • 通过USB电缆将设备连接到计算机
  • 打开Xcode,然后选择“ 窗口” >“ 设备” (或使用快捷键Shift + Command + 2)
  • 选择您的设备。 您将在窗口的右下角看到控制台输出区域
  • 运行您的应用程序,请稍等片刻,以免收到每个应用程序的设备令牌

从输出中搜索关键字之一:“ APSProtocolAppTokenGenerateResponseToken” ,“ Adding token ”或“ handleReceivedPerAppToken”。 您可以这样获得设备令牌:

获得设备令牌后(没有箭头括号和空格),即使在生产环境中,也可以利用nomad-cli的Houston等工具将通知推送到测试设备。