首先,我在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小时后,这是我的解决方案,没有任何解释.
我希望这有助于某人.