0

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

从 Token Provider 获取的 Token 错误

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

这种行为并不一致。我有另一个 VS2015 Cordova 项目,它在发布和调试模式下都可以很好地处理推送通知。

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

4

1 回答 1

3

经过一天的挫折后,我确定了 VS2015 在 Debug & Release Windows Store 包之间的行为差​​异。这可能是在 Apache 工具集的更新 7 中引入的。

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

{
  "windows": {
    "release": {
      "packageCertificateKeyFile": "res\\native\\windows\\CordovaApp.pfx",
      "publisherId": "CN=<InsertYourWinStorePubIdHere>"
    },
    "debug": {
      "packageCertificateKeyFile": "res\\native\\windows\\CordovaApp.pfx",
      "publisherId": "CN=<InsertYourWinStorePubIdHere>"
    }
  }
}
于 2016-03-09T16:28:26.943 回答