使用 PushSharp 2.2.1.0 iOS 发送通知时出错

Posted

技术标签:

【中文标题】使用 PushSharp 2.2.1.0 iOS 发送通知时出错【英文标题】:error while sending notification using PushSharp 2.2.1.0 iOS 【发布时间】:2015-01-20 05:00:51 【问题描述】:

我正在使用 PushSharp 版本 2.2.1.0,并为 ios 引用“PushSharp.Core”和“PushSharp.Apple”库。 我已经删除了防火墙的所有限制,因为它涉及一些安全问题。

我已使用密钥或不使用密钥从设备导出证书。发送通知时,我的代码卡在 PushBroker 类的 stopAllServices() 方法中。在某些情况下,我设置 ApplePushChannelSettings 的 SkipSsl=true(我没有使用 ssl),我收到错误“无法识别提供给包的凭据" 这也是很久以前在这里发布的:https://code.google.com/p/apns-sharp/issues/detail?id=3。 达到这种方法后,我的程序被绞死了。 这是我的代码:

 //Create our push services broker
        var push = new PushBroker();

        //Wire up the events for all the services that the broker registers
        push.OnNotificationSent += NotificationSent;
        push.OnChannelException += ChannelException;
        push.OnServiceException += ServiceException;
        push.OnNotificationFailed += NotificationFailed;
        push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired;
        push.OnDeviceSubscriptionChanged += DeviceSubscriptionChanged;
        push.OnChannelCreated += ChannelCreated;
        push.OnChannelDestroyed += ChannelDestroyed;


        var appleCert = File.ReadAllBytes(FileHelper.CERTIFICATEFILE);
        X509Certificate2 Cert = new X509Certificate2(appleCert, FileHelper.PASSWORD, X509KeyStorageFlags.MachineKeySet);
 push.RegisterAppleService(new ApplePushChannelSettings(false, appleCert, FileHelper.PASSWORD)); 
   push.QueueNotification(new AppleNotification()
                                       .ForDeviceToken(DeviceID.ToUpper()/*my device id*/)
                                       .WithAlert("my message")
                                       .WithSound("default")
                                       .WithBadge(1)
                                       .WithCustomItem("status", new object[]  "sucess") )
                                       .WithCustomItem("identifier", new object[]  "1"));
push.StopAllServices();

我也尝试过使用没有密码的证书。它触发 ChannelCreated 并在此之后到达 ServiceException。

【问题讨论】:

只是一个建议,您是否尝试过从您的 Mac 上的钥匙串中导出您的证书,只选择证书,而不是证书 + 密钥 连接apn服务器时出现问题。 【参考方案1】:

我发现它在使用没有密码的证书时有效。

【讨论】:

以上是关于使用 PushSharp 2.2.1.0 iOS 发送通知时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 c# 中使用 Pushsharp 的 IOS 推送通知

如何知道是不是使用 Pushsharp 将推送通知传递到 iOS 应用程序?

PushSharp 的 ios-provisioning-portal

iOS 设备令牌的 Pushsharp 4.0.10.0 ApnsConfiguration 连接错误

通知 PushSharp Android 和 IOS

pushsharp 2 在向苹果 ios 发送通知时触发异常