每个推送通知横幅在iOS9上显示两次

时间:2015-12-11 11:59:41

标签: notifications apple-push-notifications ios9

由于几个小时后我们的iOS应用程序出现了一个奇怪的问题:在iOS主屏幕上收到的每个推送通知都会触发/显示相同的通知横幅两次,两者之间有2秒的延迟。

  • 仅在具有iOS 9.x的设备上发生。在iOS 8.x设备上,一切仍然按预期工作。
  • 如果我在 - [AppDelegate应用程序:didReceiveRemoteNotification:fetchCompletionHandler:]中设置了一个断点,则每次推送通知只会调用一次。

此外,我们最近没有对后端进行任何更改(至少是弱势),对于已经发布的客户端也是如此,我们100%确定我们之前没有看到问题。

然而,我们确实更改了当前开发应用程序的Xcode功能,并且必须生成新的配置文件,因为它们标记为"无效"。

所以对我们来说,这似乎是Apple方面的一个问题。有什么建议可以尝试/检查或做什么?

2 个答案:

答案 0 :(得分:7)

似乎我和this dude有完全相同的问题:我两次致电[registerUserNotificationSettings:]

请注意,如果您调用该方法一次或两次,可能不会像您想象的那样明显:

我故意在特定的UIViewController中调用它一次。不幸的是,我每次都在didFinishLauchingWithOptions:调用它。 不要因为只看到一次对话而让自己被愚弄。

如果您想确保在-[AppDelegate application:didRegisterUserNotificationSettings:]中添加日志记录输出。在我的情况下,在我在权限对话框上点击OK后,回调被调用了两次。

由于我删除了didFinishLauchingWithOptions:中的错误拨打电话,我没有再看到双重通知。

答案 1 :(得分:3)

我向Apple提交了一份错误报告(Ticket#23569779),问题似乎已在iOS 9.2.1 beta(Build:13D11)中得到纠正

我在iOS9.1(Build:13B143)和iOS9.2(Build:13c75)上遇到了同样的问题,用于跨多个应用的​​本地和远程通知。

重新创建问题的最简单方法是在应用程序背景化时在我的应用代理中安排本地通知。

- (void)applicationDidEnterBackground:(UIApplication *)application {

    UILocalNotification *notification = [[UILocalNotification alloc] init];

    notification.repeatInterval = NSDayCalendarUnit;
    [notification setAlertBody:@"My test."];
    [notification setFireDate:[NSDate dateWithTimeIntervalSinceNow:1]];
    [notification setTimeZone:[NSTimeZone defaultTimeZone]];
    [application setScheduledLocalNotifications:[NSArray arrayWithObject:notification]];
}

这将导致通知横幅出现两次:

Duplicate banner images