首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >失败:引发了'PushSharp.Apple.NotificationFailureException‘类型的PushSharp.Apple.ApplePushService ->异常

失败:引发了'PushSharp.Apple.NotificationFailureException‘类型的PushSharp.Apple.ApplePushService ->异常
EN

Stack Overflow用户
提问于 2015-04-28 06:59:40
回答 1查看 3.2K关注 0票数 1

在我的应用程序中,我使用PushSharp发送推送通知。对安卓系统来说还不错。

对于苹果iOS --它不起作用,我们正在使用带有密码的开发证书文件。最初我们使用了错误的密码,然后我们发现了这个问题并修复了。

它得到了低沉的错误信息

代码语言:javascript
复制
Channel Created for: PushSharp.Apple.ApplePushService Failure: PushSharp.Apple.ApplePushService -> Exception of type 'PushSharp.Apple.
NotificationFailureException' was thrown. -> {"aps":{"alert":"Hello World!","badge":7,"sound":"default"}}

错误状态代码:8

错误描述:无效令牌

应用程序开发由我们的一个供应商和推送通知,我们正在做的从我们的一方。供应商使用一些PHP代码发送推送通知,它正在工作。为了推送通知,他们使用PHP与Laravel框架和库:https://github.com/davibennun/laravel-push-notification

我已经在我的iPhone设备上安装了那个应用程序,他们发送测试推送通知,它运行良好。

但是我试着用Pushsharp框架发送--它不起作用。

他们说开发证书文件是正确的,工作正常。

我已经尝试了所有可能的选择,从我的结束,但我不知道为什么它的行为奇怪的开发证书.p12。请帮我解决这个问题。

我们用于开发的代码:

代码语言:javascript
复制
var push = new PushBroker();
    var appleCert = File.ReadAllBytes(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "xxxxPass.p12"));
    push.RegisterAppleService(new ApplePushChannelSettings(appleCert, "xxxx12345")); //Extension method
    push.QueueNotification(new AppleNotification()
                               .ForDeviceToken("a51b4e80d12df0946d10413991ce1f7ab57c05bab8a292fc703ded34ce77b91f")
                               .WithAlert("Hello World!")
                               .WithSound("default")
                               .WithBadge(7));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 12:16:40

此问题是由于证书文件无效造成的。

以下步骤是在IOS应用程序中从我这边完成的。

  1. 使用对象-c类创建了一个新的Xcode项目单视图应用程序。
  2. 删除和下垂WebView控件,并映射到视图控制器。
  3. 在“ViewController.h”文件中,我添加了下面的代码。@property (非原子,强) IBOutlet UIView *site;
  4. 在“AppDelegate.h”文件中,我添加了下面的代码。

  • (void)viewDidLoad {超级viewDidLoad;

NSURL *url =[ NSURLRequest:@“https://www.xxxxx.com”];NSURLRequest *requestURL =NSURLRequest requestWithURL:url;

_site负载请求:requestURL;}

  1. 在“AppDelegate.m”文件中,我添加了下面的代码。

  • (BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //注册表用于远程通知如果(应用程序UIApplication{ // iOS 8通知[应用程序registerUserNotificationSettings:UIUserNotificationSettings ]) settingsForTypes:(UIUserNotificationTypeSound、UIUserNotificationTypeAlert、UIUserNotificationTypeAlert、UIUserNotificationTypeBadge)类别:零; 应用程序registerForRemoteNotifications;}UIRemoteNotificationTypeBadge{ // iOS <8通知应用程序registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge AC.26 UIRemoteNotificationTypeAlert { UIRemoteNotificationTypeSound);}返回YES;}

  1. 在xxxx开发者苹果帐户-创建了一个新的应用程序ID名称:xxx捆绑ID: com.xxxxdubai.xxxx推送通知为开发启用。使用以下步骤创建新的开发SSL证书。使用CRS文件密钥链访问->Certificate辅助->创建证书来自证书颁发机构…的证书生成的CertificateSigningReq…请求文件。上传的CRS文件下的iOS证书文件和生成。

它是在证书开发部分名称: com.xxxxdubai.xxxx类型:APNs开发iOS下自动创建的

  1. 然后创建用于开发的临时概要文件名称: XXXX开发类型: Ios开发应用程序ID:所选xxxx应用程序id证书:选定的xxxx iOS开发设备:选择设备

成功生成供应配置文件。

  1. 然后,我向密钥链访问登录添加了配置配置文件,并使用密码导出了apns.dev.cert.p12文件。
  2. 在Xcode应用程序项目中,构建设置更改为选定的供应配置文件(我导出和注册的配置文件)
  3. 选择模拟器作为我的iPhone设备,并运行该项目,它已成功安装并在我的手机上午餐应用程序。
  4. 自动从app中显示用于向app服务器注册推送通知的第一次警告消息,以及接收到并登录到调试区域中的新设备令牌。
  5. 使用PushShap框架进行测试,使用新的证书apns.dev.cert.p12和新设备id推送通知成功工作。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29912416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档