gpt4 book ai didi

ios - 失败 : PushSharp. Apple.ApplePushService -> 抛出类型为 'PushSharp.Apple.NotificationFailureException' 的异常

转载 作者:行者123 更新时间:2023-11-29 12:23:24 25 4
gpt4 key购买 nike

我在我的应用程序中使用 PushSharp 发送推送通知。它在 Android 上运行良好。

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

出现如下错误信息

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

错误描述:无效 token

由我们的供应商之一开发的应用程序和我们从我们这边进行的推送通知。供应商使用一些正在运行的 PHP 代码发送推送通知。为了推送通知,他们使用带有 Laravel 框架和库的 PHP 服务器:https://github.com/davibennun/laravel-push-notification

我已经在我的 iPhone 设备上安装了该应用程序,他们发送了测试推送通知,它工作正常。

但我尝试使用 Pushsharp 框架发送它不起作用。

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

我已经尝试了所有可能的选项,但我不知道为什么它与开发证书 .p12 的行为不一致。请帮我解决这个问题。

我们用于开发的代码:

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));

最佳答案

此问题是因为证书文件无效。

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

  1. 使用 Object-c 类创建了一个新的 Xcode 项目单 View 应用程序。
  2. 拖放 WebView 控件并映射到 View Controller 。
  3. 在“ViewController.h”文件中,我添加了以下代码。@property (nonatomic, strong) IBOutlet UIView *site;

  4. 在“AppDelegate.h”文件中,我添加了以下代码。

  • (void)viewDidLoad { [super viewDidLoad];

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

[_site loadRequest:requestURL];

  1. 在“AppDelegate.m”文件中,我添加了以下代码。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Register for Remote Notifications
if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
// iOS 8 Notifications
[application registerUserNotificationSettings:[UIUserNotificationSettings

settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];

        [application registerForRemoteNotifications];
}
else
{
// iOS < 8 Notifications
[application registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}

return YES;
}
  1. 在 xxxx Developer apple 帐户中 – 创建了一个新的 App ID姓名:xxx捆绑 ID:com.xxxxdubai.xxxx为开发启用推送通知。使用以下步骤创建新的开发 SSL 证书。使用 CRS 文件 Keychain Access 创建证书 -> Certificate Assitant -> Reqest a Certificate From a Certificate Authority ...生成的 CertificateSigningReq ...请求文件。上传iOS Cerfiicate文件下的CRS文件并生成。

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

  1. 然后创建了用于开发的临时配置文件姓名:XXXX开发类型:Ios 开发App ID: selected xxxx app id证书:入选xxxx iOS开发设备:选择我的 velus-iPhone 设备

已成功生成配置文件。

  1. 然后我将 Provisioning 配置文件添加到 Keychain 访问登录并导出带有密码的 apns.dev.cert.p12 文件。
  2. 在 Xcode APP 项目中,Build 设置更改为选择 Provisioning Profile(我导出并注册的那个)
  3. 选择模拟器作为我的 iPhone 设备并运行已成功安装的项目,并在我的手机上启动该应用程序。
  4. 自动从应用程序显示的第一次警报消息用于向 APNS 服务器注册推送通知,并且接收并记录新的设备 token 显示在调试区域中。
  5. 使用新证书 apns.dev.cert.p12 和新设备 ID 推送通知成功使用 PushShap 框架进行测试。

关于ios - 失败 : PushSharp. Apple.ApplePushService -> 抛出类型为 'PushSharp.Apple.NotificationFailureException' 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29912416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com