PushSharp发送passkit push时无效的DeviceToken长度

Tom*_*Tom 12 c# apple-push-notifications pushsharp passkit

我尝试在Apple passkit相关项目中使用PushSharp.

我目前的问题是关于passkit推送.

当我尝试创建我的通知时,它说

device tokent length无效(确切的异常消息:无效的DeviceToken长度.

var notif = new ApnsNotification(token, payload);
Run Code Online (Sandbox Code Playgroud)

当我注册一个新的passkit优惠券时,它的令牌长度是32.对我来说似乎没问题.

应该是什么问题?PushSharp是否支持passkit?正如我所见,有些人使用它,但我找不到任何关于它的官方信息.

请注意,我知道PushSharp使用它发送普通推送消息,它已经工作多年没有任何问题.我的问题是与passkit相关的推动.

非常感谢!

编辑

在Baris Akar的建议改变代码之后,问题得到解决,但另一个问题出现了:

Apple Notification Failed: ID=1, Code=ConnectionError

2016-11-18 11:07:22.de.[INFO]停止:等待任务2016-11-18 11:07:22.de.[INFO]等待所有任务1 2016-11-18 11:07:22.de.[INFO] APNS-Client [1]:发送批次ID = 1,Count = 1 2016-11-18 11:07:22.de.[INFO] APNS-Client [1]:已发送批处理,等待可能的响应... Apple Notification Failed:ID = 1,Code = ConnectionError 2016-11-18 11:07:22.de.[INFO]所有任务完成2016-11-18 11:07:22.de.[INFO]通过时所有2016-11-18 11:07:22.de.[INFO] Broker IsCompleted 2016-11-18 11:07:22.de.[DEBUG]经纪人任务结束2016-11-18 11:07:22.de.[INFO]停止:完成等待任务2016-11-18 11:07:22.de.[INFO] APNS-Client [1]:批量读取= 1,重置批量计时器...

Bar*_*kar 8

看起来像旧版本,它会像这样工作:

var n = new AppleNotification().WithPasskitUpdate();
Run Code Online (Sandbox Code Playgroud)

该功能WithPasskitUpdate()不再可用,但这应该是等效的:

var notif = new ApnsNotification();
notif.DeviceToken = token;
notif.Payload = payload;
Run Code Online (Sandbox Code Playgroud)

没有测试它,但在检查代码后,也许它可以工作.基本上你是以这种方式绕过构造函数中令牌长度检查ApnsNotification(如果令牌对于passkit推送而言较小,则应该可能已修复).

还要确保使用正确的证书(这似乎与常规推送通知的证书不同)并使用生产设置,因为似乎没有存折的沙箱环境(请参阅此答案).

此外,您需要传递构造函数falsevalidateIsApnsCertificate参数ApnsConfiguration,因为检查了不处理pushkit证书的证书.

var config = new ApnsConfiguration(ApnsConfiguration.ApnsServerEnvironment.Production, certificateFile, certificateFilePwd, false);
Run Code Online (Sandbox Code Playgroud)