使用 C# Push Sharp 库的推送通知在生产服务器上不起作用

Push Notification using C# Push Sharp library is not working on production server

生成证书后,我在Keychain访问中只导出了私钥(没有证书),导出为.p12并使用了该文件,但没有用。我只导出了证书并导出为 .p12 并使用了该文件,但它也没有用。

例外情况是:

您选择了生产服务器,但您的证书似乎不是生产证书!请检查以确保您拥有正确的证书!

如果我将相同的 .p12 与 MoonAPNS 库一起使用,它可以正常工作,但不能与 PUSHSHarp 库一起使用。我仅将 push sharp 用于无声通知。

Apple 引入了新的统一推送通知证书,该证书对沙盒和生产服务器均有效。这个新证书的主题名称有点不同(它曾经包含 Apple Production IOS Push ServicesApple Development IOS Push服务,现在它包含 Apple 推送服务)。

PushSharp 2.x 不知道这种新格式,仍然希望验证旧的主题名称,因此它认为您的证书无效。

推荐使用

PushSharp 3.x(目前 pre-release 在 NuGet 上可用)并且可以正确验证新类型的证书。我建议更新到 3.x 版本(当然其中涉及一些重大 API 更改)。

如果您仍然坚持使用 PushSharp 2.x,您可以通过在 ApplePushChannelSettings [=35] 中将 disableCertificateCheck 参数设置为 true 来覆盖证书验证=] 构造函数.