生成证书后,我只在Keychain访问中导出私钥(没有证书),导出为.p12并使用该文件,但没有工作。我只导出了证书并导出为.p12并使用了该文件,但它也没有工作。
例外是:
您已选择生产服务器,但您的证书似乎不是生产证书!请检查以确保您拥有正确的证书!
如果我使用与MoonAPNS库相同的.p12,它可以正常工作,但不能与PUSHSHarp库一起使用。我只使用push sharp进行无声通知。
答案 0 :(得分:11)
Apple推出了一项新的统一推送通知证书,该证书对Sandbox和Production服务器都有效。此新证书与主题名称略有不同(它用于包含 Apple Production IOS推送服务或 Apple Development IOS推送服务,现在它包含 Apple推送服务)。
PushSharp 2.x不知道这种新格式,仍然希望验证旧的主题名称,因此它认为您的证书无效。
建议使用PushSharp 3.x(目前在NuGet上提供预发布),并正确验证新类型的证书。我建议更新到3.x版本(当然,其中涉及一些重大的API更改)。
如果您仍然坚持使用PushSharp 2.x,则可以通过在disableCertificateCheck
类构造函数中将true
参数设置为ApplePushChannelSettings
来覆盖证书验证。