我有一个非常简单的Cordova应用程序,带有推送通知。我正在使用VS2015 Update 1和最新的Cordova工具集(Update 7)以及正确设置的Azure App Service。当我通过VS运行RELEASE Win10 x64版本的应用程序时,我按预期接收推送通知。但是,当我运行相同应用程序的DEBUG版本(没有源更改)时,我没有得到推送通知,并且发件人收到错误:
从令牌提供程序获取的令牌是错误的
这两个应用程序都是Windows 10,在Local Machine x64(不是模拟器)上运行。
此行为不一致。我有另一个VS2015 Cordova项目,在发布和调试模式下都能正常工作。
VS或Azure中是否存在一些控制此行为的设置?
答案 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>"
}
}
}