【问题标题】:Unable to request authorization for local notifications on macOS无法为 macOS 上的本地通知请求授权
【发布时间】:2021-12-30 11:25:48
【问题描述】:
当使用以下方式请求本地通知授权时:
do {
_ = try await current().requestAuthorization(options: [.alert])
} catch let error {
print(error)
}
我总是收到错误消息:
Error Domain=UNErrorDomain Code=1 "Notifications are not allowed for this application" UserInfo={NSLocalizedDescription=Notifications are allowed for this application}
如果我去
系统偏好 > 通知和焦点 > 我的应用名称
我可以看到它们已被禁用,但我自己从未禁用它们,而且我找不到重置设置的方法。
使用 Swift、macOS 12 Monterey 和使用 async/await 的更新后的 UserNotifications API。
【问题讨论】:
标签:
swift
macos
notifications
authorization
unusernotificationcenter
【解决方案1】:
需要手动删除应用的所有痕迹,然后按照此处列出的所有步骤从头开始重试:
- 如果已安装应用,请卸载(从
Applications/ 删除)
- 在 Xcode 项目
⌘ ⇧ k 上清理构建
- 删除任何派生数据
[path to Xcode]/Xcode/DerivedData
- 删除所有 Xcode 产品
[path to Xcode]/Xcode/Products
- 删除所有存档
[path to Xcode]/Xcode/Archives
- 删除应用的容器
~/Library/Containers/[my app name]
- 清空垃圾桶
- 在 finder 上进行搜索,确保您的应用程序不再有任何痕迹,在您的硬盘上搜索以下词:
[my app name].app
- 确保它不再出现在:系统偏好设置 > 通知和焦点 > [我的应用名称]
- 重新启动计算机
在所有这些请求授权的步骤都应该工作之后:
do {
_ = try await current().requestAuthorization(options: [.alert])
} catch let error {
print(error)
}
它只工作一次
它只会在第一次工作,如果您不回复通知或不允许他们,您将需要重复所有步骤才能再次尝试。