解析 iOS 推送通知停止到达设备,即使仪表板有它们的记录
Parse iOS push notifications stopped reaching the device even though the dashboard has records of them
我正在使用 Parse 推送通知,它一直运行良好,直到几天前我停止在我的两台 iOS 设备上接收通知(一台 运行 iOS 8.4 和其他 8.2)。我可以在 Parse.com 仪表板中看到正在发送的通知。但我没有看到他们到达设备上的通知中心。在 XCode 调试器中,也没有看到 application.didReceiveRemoteNotification 被调用过。奇怪的是,我在 iOS 7 上的 iPhone 运行 仍然收到通知 运行 与 iOS 8 中相同版本的代码。所以对可能是什么问题感到困惑。
最近几天发生的事情:
将 phone 之一升级到 iOS 8.4,但通知在 8.2 设备上也不起作用,因此升级不应该是原因
升级 XCode 到 6.4
8.4 设备是新设备(运行 在 8.3 上)我刚刚添加到配置文件中。当我将 phone 连接到 XCode 时,在 XCode 身份设置中单击 "fix it" 按钮时出现了一些问题(我不记得详细信息了)。一段时间后,我注意到通知没有通过。我用谷歌搜索并找到了在首选项->帐户->Apple ID->查看详细信息->刷新按钮中刷新我的配置文件的建议。这似乎已经奏效了,我又收到了通知。但是一天后它又停止工作了。
我试图通过在 [=38] 中添加另一个 URL 方案,使用不同的 bundle ID(带有一些后缀)并使用相同的 facebook App ID 创建一个单独的应用程序版本=] 文件。无法让它工作,因为 facebook 登录让我回到旧应用程序,所以我取消了所有工作。但我仍然看到一些新的配置文件和新的 bundle id。所以我在苹果开发者网站会员中心删除了它们,并在 XCode 中刷新了配置文件以获取更改。
我只记得这些,我不知道是哪个操作(如果有的话)导致了问题以及如何解决它。有什么建议吗?
您是否确认在您的应用委托中为 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 文件——听起来有些不对劲,但它是大海捞针。尽职调查并按照从头到尾的流程进行操作:
我正在使用 Parse 推送通知,它一直运行良好,直到几天前我停止在我的两台 iOS 设备上接收通知(一台 运行 iOS 8.4 和其他 8.2)。我可以在 Parse.com 仪表板中看到正在发送的通知。但我没有看到他们到达设备上的通知中心。在 XCode 调试器中,也没有看到 application.didReceiveRemoteNotification 被调用过。奇怪的是,我在 iOS 7 上的 iPhone 运行 仍然收到通知 运行 与 iOS 8 中相同版本的代码。所以对可能是什么问题感到困惑。
最近几天发生的事情:
将 phone 之一升级到 iOS 8.4,但通知在 8.2 设备上也不起作用,因此升级不应该是原因
升级 XCode 到 6.4
8.4 设备是新设备(运行 在 8.3 上)我刚刚添加到配置文件中。当我将 phone 连接到 XCode 时,在 XCode 身份设置中单击 "fix it" 按钮时出现了一些问题(我不记得详细信息了)。一段时间后,我注意到通知没有通过。我用谷歌搜索并找到了在首选项->帐户->Apple ID->查看详细信息->刷新按钮中刷新我的配置文件的建议。这似乎已经奏效了,我又收到了通知。但是一天后它又停止工作了。
我试图通过在 [=38] 中添加另一个 URL 方案,使用不同的 bundle ID(带有一些后缀)并使用相同的 facebook App ID 创建一个单独的应用程序版本=] 文件。无法让它工作,因为 facebook 登录让我回到旧应用程序,所以我取消了所有工作。但我仍然看到一些新的配置文件和新的 bundle id。所以我在苹果开发者网站会员中心删除了它们,并在 XCode 中刷新了配置文件以获取更改。
我只记得这些,我不知道是哪个操作(如果有的话)导致了问题以及如何解决它。有什么建议吗?
您是否确认在您的应用委托中为 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 文件——听起来有些不对劲,但它是大海捞针。尽职调查并按照从头到尾的流程进行操作: