2015-12-11 47 views
7

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

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

而且我们的确在后台没有改变近期(至少一个弱),它也恰好为这是已经发布的客户端,我们是100%肯定,我们没有看到过这个问题。

但是,我们改变了当前开发应用程序的Xcode的功能,并且必须生成新的配置文件作为标记为“无效”的旧配置文件。

对我们来说,它看起来像苹果方面的问题。任何建议什么更多的尝试/检查或做什么?

回答

7

好像我有完全一样的问题,因为this dude有:我叫[registerUserNotificationSettings:]两次。

要知道,当你想看到,如果你调用的方法一次或两次,它可能不是那么明显:

我把它叫做一次在特定的UIViewController目的。不幸的是,我还在didFinishLauchingWithOptions:中每次都打电话给它。 不要让自己被愚弄,因为你只看到对话一次。

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

由于我删除didFinishLauchingWithOptions:中的错位调用,我没有看到双重通知。

3

我提交了一个bug报告给苹果(门票#23569779)和问题似乎已在iOS的9.2.1测试版被纠正(编译: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

+0

您的错误报告单已关闭和/或评论吗?如果您可以将票据提交给[OpenRadar](https://openradar.appspot.com),那将非常有用!我有这个相同的问题,并会喜欢官方的评论,它已被修复。 – pkamb

+0

错误报告已关闭,问题在iOS 9.2.1 beta(Build:13D11)中修复。 – gatlinhebert

+0

我在iOS 9.3.5中遇到这个问题,任何人有任何更新相同? –