我正在使用 Parse 推送通知,它一直运行良好,直到几天前我停止在我的两台 iOS 设备上接收通知(一台运行 iOS 8.4,另一台运行 iOS 8.2)。我可以在 Parse.com 仪表板中看到正在发送的通知。但我没有看到他们到达设备上的通知中心。在 XCode 调试器中,也没有看到 application.didReceiveRemoteNotification 被调用过。奇怪的是,我在 iOS 7 上运行的 iPhone 仍然收到运行与 iOS 8 中相同版本代码的通知。所以很困惑可能是什么问题。
最近几天发生了一些事情:
已将其中一部手机升级到 iOS 8.4,但通知在 8.2 设备上也不起作用,因此升级不应该是原因
将 XCode 升级到 6.4
8.4 设备是一个新设备(在 8.3 上运行),我刚刚添加到配置文件中。当我将手机连接到 XCode 时,在 XCode Identity 设置中单击“修复它”按钮时出现了一些问题(我不记得详细信息了)。一段时间后,我注意到通知没有通过。我用谷歌搜索并找到了在首选项->帐户->Apple ID->查看详细信息->刷新按钮中刷新我的配置文件的建议。这似乎已经奏效了,我又收到了通知。但是一天后它又停止工作了。
我试图通过在 info.plist 文件中添加另一个 URL Scheme,使用不同的 bundle ID(带有一些后缀)和使用相同的 facebook App ID 创建一个单独的应用程序版本。无法让它工作,因为 facebook 登录让我回到旧应用程序,所以我取消了所有工作。但我仍然看到一些新的配置文件和新的 bundle id。因此,我在苹果开发者网站成员(member)中心删除了它们,并在 XCode 中刷新了配置文件以获取更改。
我只记得这些,我不知道是哪个操作(如果有的话)导致了问题以及如何解决它。有什么建议吗?
最佳答案
您是否确认在您的应用委托(delegate)中为 iOS 8 启用了推送?
// Register for Push Notitications, if running iOS 8
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
UIUserNotificationTypeBadge |
UIUserNotificationTypeSound);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
else {
// Register for Push Notifications before iOS 8
[application registerForRemoteNotificationTypes:(UIUserNotificationTypeBadge |
UIUserNotificationTypeAlert |
UIUserNotificationTypeSound)];
}
我也会从全新开始,生成所有证书、应用程序和供应配置文件,以及 .p12 文件 - 听起来有些不对劲,但它是大海捞针。尽职调查并遵循从 A 到 Z 的流程:
关于ios - 解析 iOS 推送通知停止到达设备,即使仪表板有它们的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261309/