在DEBUG模式下WNS推送通知失败并显示错误:从令牌提供程序获取的令牌错误

时间:2016-03-09 01:40:28

标签: visual-studio cordova azure wns

我有一个非常简单的Cordova应用程序,带有推送通知。我正在使用VS2015 Update 1和最新的Cordova工具集(Update 7)以及正确设置的Azure App Service。当我通过VS运行RELEASE Win10 x64版本的应用程序时,我按预期接收推送通知。但是,当我运行相同应用程序的DEBUG版本(没有源更改)时,我没有得到推送通知,并且发件人收到错误:

  

从令牌提供程序获取的令牌是错误的

这两个应用程序都是Windows 10,在Local Machine x64(不是模拟器)上运行。

此行为不一致。我有另一个VS2015 Cordova项目,在发布和调试模式下都能正常工作。

VS或Azure中是否存在一些控制此行为的设置?

1 个答案:

答案 0 :(得分:3)

经过一天的挫折之后,我确定了VS2015在Debug& amp;之间的行为差​​异。发布Windows应用商店包。它可能是在Apache工具集的Update 7中引入的。

简而言之,VS2015不会使用Windows应用商店发布者ID对Debug包进行签名。这会导致某些功能(如推送通知)无法正常工作。要解决此问题,请编辑Cordova项目的 build.json 文件,并为调试版本添加一个条目,强制VS使用您的Windows应用商店发行商证书。完成之后文件应该如下所示(我的错过了调试部分) - 当然还要在占位符中放入Windows Store发布的ID:

{
  "windows": {
    "release": {
      "packageCertificateKeyFile": "res\\native\\windows\\CordovaApp.pfx",
      "publisherId": "CN=<InsertYourWinStorePubIdHere>"
    },
    "debug": {
      "packageCertificateKeyFile": "res\\native\\windows\\CordovaApp.pfx",
      "publisherId": "CN=<InsertYourWinStorePubIdHere>"
    }
  }
}