iOS 14:UnuseNotificationCenter requestAuthorizationWithOptions始终以“失败”;此应用程序不允许发送通知”;

iOS 14:UnuseNotificationCenter requestAuthorizationWithOptions始终以“失败”;此应用程序不允许发送通知”;,ios,notifications,ios14,unusernotificationcenter,Ios,Notifications,Ios14,Unusernotificationcenter,我找不到解决办法,对此我目瞪口呆。我有以下代码: UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOpt

我找不到解决办法,对此我目瞪口呆。我有以下代码:

UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
        UNAuthorizationOptionSound | UNAuthorizationOptionBadge;

[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions
        completionHandler:^(BOOL granted, NSError * _Nullable error) {
             NSLog(@"%i %@",granted, error);
        }];

然后它立即进入调用处理程序,而不显示通知权限

2020-09-18 18:05:46.657991-0700 My App [404:9600] 0 Error Domain=UNErrorDomain Code=1 "Notifications are not allowed for this application" UserInfo={NSLocalizedDescription=Notifications are not allowed for this application}

我错过了什么?警报甚至不会弹出


注意:同样的代码在iOS 13.x上没有问题,在iOS 14上它会立即失败。

问题在于您忽略了一个步骤。在请求授权之前,调用
getNotificationSettingsWithCompletionHandler:
,查看结果对象的
authorizationStatus
。如果它是未经授权的StatusDenied,则没有继续的必要。

我的产品名称是日文的。如果产品名称为非英语,则会出现上述问题!如果我将产品名称更改为英语,它将起作用!我通过苹果反馈助手提出了一个问题。

我的问题是在产品名称部分使用土耳其语字符

在我的例子中,构建设置-打包-产品名称不是英语。换成英语工作


首先没有要求通知。全新安装在设备上,并且通知询问从未出现。系统设置甚至没有应用程序的通知设置。很抱歉,澄清一下,上面的代码是必需的。是的,但在这种情况下,由于它是一个新安装,任何人都无法解决这个问题。我也有同样的问题。我的应用程序的名称是mylittleworldapp,因此,即使这不是一个外国名称,也不一定是英文名称。将尝试解决方案并查看。