ios – didRegisterForRemoteNotificationsWithDeviceToken从未在特定设备上调用

前端之家收集整理的这篇文章主要介绍了ios – didRegisterForRemoteNotificationsWithDeviceToken从未在特定设备上调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > didRegisterForRemoteNotificationsWithDeviceToken not called in ios8,but didRegister…Settings is7个
首先,我在iPhone 6 Plus / iOS 8.1上,我已经尝试过一切: why didRegisterForRemoteNotificationsWithDeviceToken is not called

还没有效果总结:

>我已经检查了我的包标识符与配置文件/开发门户网站中的一致
>我已经创建了一个新的开发推送APNS证书
>我创建了一个新的开发证书
>我已经为该开发证书创建了一个新的配置文件
>我已经下载了证书和配置文件,显然,双击它们进行安装
>我已经验证了开发人员门户网站上的一切都是正确的:所有证书和配置文件都有效,推送启用并配置了我的新APNS证书
>我已将我的新APNS证书上传到Parse(在这一步上无关,但无论如何),因为我使用Parse作为后端
>我已经确定我正在Xcode使用正确的证书/配置配置文件配对
>我已经检查通知设置,以防我的应用程序不允许接收推送,它不在那里
>我已经尝试手动将日期设置为明天,并尝试重新安装该应用程序
>我已从我的设备中删除该应用
>我从我的设备中删除了任何相关的配置文件
>我重新启动了我的设备多次

在应用程序中:didFinishLaunchingWithOptions:我调用

if([application respondsToSelector:@selector(registerUserNotificationSettings:)]){
        //iOS 8+
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
    }else{
        //pre-iOS 8
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
    }

在应用程序中:didRegisterUserNotificationSettings:我打电话:

[application registerForRemoteNotifications];

我已经检查了一个断点,它被调用.我也实现了两种方法

应用:didRegisterForRemoteNotificationsWithDeviceToken:

应用:didFailToRegisterForRemoteNotificationsWithError:

但是,他们都不叫.不是错误,没有.控制台也没有错误. (我今天早些时候已经出现了有关权利的问题,但是创建新的证书/配置配置文件解决了)

可能是什么问题?

更新:这是一些东西.在应用程序中:didRegisterUserNotificationSettings:我已经检查了通知设置,这里是我所得到的:

(lldb) po notificationSettings
<UIUserNotificationSettings: 0x170031cc0; types: (none);>

更新2:我再次检查了通知,并发现现在我的应用程序已添加到“设置”中的通知中,它已被授予权限.但是仍然没有调用处理程序.
类型没有.我99%肯定这与问题有关.

更新3:我已经在另一台设备(iPod touch,iOS 8.1)上测试过,我没有遇到任何问题.它立即调用应用程序:didRegisterForRemoteNotificationsWithDeviceToken:方法与其令牌.问题是我的iPhone特定的.

解决方法

我遇到类似的问题,代码已经实现并且工作正常.
突然之后,经过一些调整,它不再工作了.

在设备上运行的方案是:

>在didFinishLaunchingWithOptions上调用registerForRemoteNotifications.
> didRegisterForRemoteNotificationsWithDeviceToken不会调用
>也没有FailToRegisterForRemoteNotificationsWithError不会调用.

我尝试了一切,几乎重置了所有推送配置和证书和配置文件等.
所有具有最后版本的设备正在运行,但是当我安装新版本时,只需不要再工作了.

为了解决这个问题,我只是这样做:

>达到目标能力;
>关闭推送通知;
>建立&在设备上运行应用程序,等待;
>停止运行应用程序;
>再次打开推送通知.
>建立&在设备上运行应用程序;
像魔法一样,它再次奏效

与Xcode战斗6小时后,这是我的解决方案,没有任何解释.

我希望这有助于某人.

原文链接:https://www.f2er.com/iOS/337083.html

猜你在找的iOS相关文章