在 iOS 11.2 中清除单个通知会清除所有通知

Clearing a single notification in iOS 11.2 clears them all

从 iOS 11.2 开始,从我的应用中清除单个通知似乎会清除所有通知。由于没有更改代码,我似乎无法弄清楚发生了什么。

我的 UNNotificationRequest 是使用 GUUID 创建的,因此具有普遍唯一性(因为我的应用允许用户根据相同的提醒类型创建多个提醒)。

我一定做错了什么?

UNMutableNotificationContent *alertContent = [[UNMutableNotificationContent alloc] init];
alertContent.categoryIdentifier = ALERT_CATEGORY_ALERTS;
alertContent.body = task.title;
alertContent.userInfo = ... a dictionary of stuff

...

NSDateComponents *dateCompos = [localGregCal components:NSCalendarUnitYear | NSCalendarUnitMonth 
| NSCalendarUnitDay | NSCalendarUnitHour | 
NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:deliveryDate];

UNCalendarNotificationTrigger *alertTrigger = [UNCalendarNotificationTrigger 
triggerWithDateMatchingComponents:dateCompos repeats:NO];

UNNotificationRequest *notifRequest = [UNNotificationRequest requestWithIdentifier:NEW_GUUID
 content:alertContent trigger:alertTrigger];

似乎是 iOS 11.2.0-.5 问题:

rdar://36575570: iOS 11.2.2: Clearing/Action on notification causes …

我也只在 iOS 11.2 上遇到过同样的问题,现在我已经将我的 OS 11.2 更新到 11.3。现在它对我来说很好用。

所以这是 OS 相关的错误,已在 iOS 11.3 中解决。

另一个cause/solution:

如果您在没有 alert 的静默通知到达时清除单个通知,请确保 aps.batch 未设置为 0。确保 aps.batch 未设置完全包含在您的消息中。